diff options
Diffstat (limited to 'desktop/island/Island.qml')
| -rw-r--r-- | desktop/island/Island.qml | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/desktop/island/Island.qml b/desktop/island/Island.qml index 12f49ea..ee03ca1 100644 --- a/desktop/island/Island.qml +++ b/desktop/island/Island.qml @@ -52,10 +52,9 @@ PanelWindow { // A tray menu is a separate popup: moving onto it un-hovers the pills, // and the hide timer would then hide the island under the open menu. The - // menu cannot report its own close through display(), so the hold ends - // the next time the pointer comes back to the island. - // ponytail: if the menu is dismissed elsewhere, the island may stay shown - // until the next hover. + // hold ends when the menu closes, or the next time the pointer comes back. + // It used to wait for the pointer alone, which left the island stuck open + // after a menu's Quit, since the pointer was on the menu, not the pills. property bool menuHeld: false onHoveredChanged: { @@ -319,6 +318,10 @@ PanelWindow { window: win panel: win.panel onMenuShown: win.menuHeld = true + onMenuClosed: { + win.menuHeld = false; + if (!win.hovered && win.panel === "") hideTimer.restart(); + } onOpenSound: win.panel = win.panel === "sound" ? "" : "sound" onOpenHeadphones: win.panel = win.panel === "headphones" ? "" : "headphones" onClosePanel: win.panel = "" |
