Skip to content

popupMenu: release destroyed item signals - #13958

Open
H234598 wants to merge 3 commits into
linuxmint:masterfrom
H234598:fix/popup-menu-signal-retention
Open

popupMenu: release destroyed item signals#13958
H234598 wants to merge 3 commits into
linuxmint:masterfrom
H234598:fix/popup-menu-signal-retention

Conversation

@H234598

@H234598 H234598 commented Aug 26, 2026

Copy link
Copy Markdown

Summary

  • disconnect every parent-managed signal owned by destroyed menu items, child menus, and sections
  • replace per-item parent state handlers with one menu-lifetime handler
  • preserve sibling submenu and separator behavior
  • recurse through PopupMenuSection when updating item state

The previous cleanup left the managed destroy signal behind, retaining destroyed items. Submenu destruction could also disconnect unrelated parent open-state-changed handlers.

Closes #13956

Tests

  • 1000 add/destroy cycles for PopupMenuItem, PopupSeparatorMenuItem, PopupSubMenuMenuItem, and PopupMenuSection
  • sibling submenu behavior after destroying another submenu
  • separator update after destroying an adjacent submenu
  • submenu close inside nested sections
  • non-animated and animated/deferred parent close paths
  • isolated Xvfb/D-Bus runner, including forced outer-timeout cleanup
  • exact base revision as negative control
  • exact 6.6.9 source-port run

Run locally:

./tests/run-popup-menu-signals.sh

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

PopupMenuBase retains destroyed items and disconnects sibling state handlers

1 participant