aboutsummaryrefslogtreecommitdiffstats
path: root/AGENTS.md
diff options
context:
space:
mode:
authorDanilo M. <danix@danix.xyz>2026-10-24 09:44:39 +0200
committerDanilo M. <danix@danix.xyz>2026-10-24 09:44:39 +0200
commitdb144ea05a98051662b4d77a2a0dfd950d670295 (patch)
treea7a38704c421b9eb983d48f32345c7c923771b07 /AGENTS.md
parent0fa4736470a39b6abbb0e70d3eb5b7636fb61549 (diff)
downloadquickshell-db144ea05a98051662b4d77a2a0dfd950d670295.tar.gz
quickshell-db144ea05a98051662b4d77a2a0dfd950d670295.zip
island: release the tray-menu hold when the menu closes
A tray menu un-hovers the pills, so the island holds itself shown while one is open. display() reports no close, so the hold ended only when the pointer came back to the island. Quitting an app from its menu left the pointer on the vanished menu, below the pills, and the island stayed open until the next hover. Menus now open through a QsMenuAnchor. Its closed signal fires on any dismissal, an entry picked, Escape or a click elsewhere, and clears the hold and restarts the hide timer. Checked by eye: menu placement unchanged, Quit and a dismissal both retract the island, hovering back keeps it shown. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md9
1 files changed, 6 insertions, 3 deletions
diff --git a/AGENTS.md b/AGENTS.md
index cefaf5b..ddcf76d 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -143,14 +143,17 @@ changing that component. The ones that generalise:
dominfo <vm>` grepped for `Managed save: yes`, polled per VM the way the
agent rows are. It measured 6ms.
- **Tray menus need `//@ pragma UseQApplication`** at the top of the root QML
- file. Without it `SystemTrayItem.display()` only logs a qCritical ("not
+ file. Without it `SystemTrayItem.display()` and `QsMenuAnchor.open()` only log a qCritical ("not
started in QApplication mode") and nothing opens. Pragmas are read at launch,
before the first import, so adding or changing one needs a restart, not a hot
reload. `desktop/shell.qml` carries it.
- **A tray menu is a separate popup, and hovering it un-hovers the island.**
The pills lose the pointer, so the hide timer would close the island under
- the open menu. `display()` reports no close, so the island holds itself shown
- after it until the pointer returns (a ponytail ceiling in `Island.qml`).
+ the open menu, so the island holds itself shown while one is open.
+ `display()` reports no close, and holding until the pointer returned left
+ the island stuck open after a menu's Quit, with the pointer on the menu.
+ Menus open through a `QsMenuAnchor` instead, whose `closed` signal fires on
+ any dismissal and ends the hold.
- **A mouse button nothing accepts does not reliably fall through to a
catcher underneath.** The drawer's back button (`BTN_SIDE`, `Qt.BackButton`)
never reached a full-surface `MouseArea` below the panel while a page was