Repository navigation
Conversation
|
Hi can you drop the tests please, just the popupMenu.js changes. Thanks |
|
Field validation from #14026, the same bug, triggered by the power applet and Bluetooth devices that report their battery level: I ran the minimal version of this fix ( @H234598, are you planning to drop the tests as requested? |
Preserve the regression suite and isolated Xvfb/D-Bus runner on the tests/popup-menu-signals branch for separate reproduction. The popupMenu.js implementation is unchanged.
|
sure thing, sorry for the delay. I've removed the two test files as requested, so this PR now contains only the changes to The regression tests and isolated Xvfb/D-Bus runner are preserved on the tests/popup-menu-signals branch in my fork. |
Repeated menu rebuilds retain destroyed menu items through managed signal connections. Destroying a submenu can also disconnect parent state handlers that still belong to its siblings.
This change disconnects all parent-managed signals associated with destroyed items, child menus, and sections. A single menu-lifetime handler updates separator visibility and closes submenus, including those inside sections, while preserving the deferred close path used during animations.
Closes #13956.
Regression tests
The regression suite and isolated Xvfb/D-Bus runner are available separately on the tests/popup-menu-signals branch in my fork.
The suite covers 1,000 add/destroy cycles for each of four item types, sibling submenu handling after another submenu is destroyed, separator updates, submenu closure inside sections, and animated/deferred parent closure.
To run the preserved suite:
git clone --branch tests/popup-menu-signals --single-branch https://github.com/H234598/cinnamon.git cinnamon-popup-menu-tests cd cinnamon-popup-menu-tests ./tests/run-popup-menu-signals.shThe standalone runner uses the installed Cinnamon runtime and the branch's popup menu implementation. It requires Cinnamon, Xvfb, gdbus, dbus-run-session, setsid, and timeout; it includes compatibility adjustments for running the checkout's popup menu code against the installed Cinnamon 6.6 runtime.