diff options
Diffstat (limited to 'AGENTS.md')
| -rw-r--r-- | AGENTS.md | 25 |
1 files changed, 20 insertions, 5 deletions
@@ -143,14 +143,24 @@ 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 - started in QApplication mode") and nothing opens. Pragmas are read at launch, + 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 pills lose the pointer and the hide timer would close the island under + 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. +- **`SplitParser` can hand a line over with the previous blank line still + attached.** Streaming `top -b`, every frame header after the first arrived + as `"\ntop - ..."`, so `startsWith("top - ")` matched once and the + process table never filled, with nothing in the log. Match with + `/^\s*.../`. A shell pipe shows no such thing, so test the parse inside + `qs`, and capture with a live reader rather than a killed `top > file`, + which flushes on exit and hides buffering too. - **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 @@ -546,6 +556,11 @@ back. `qs -p <dir>` runs one directly. `qs -p <dir> ipc call <target> <fn>` reaches a running one, which is how `SUPER+v` opens the VM drawer. +An `IpcHandler` function named after a `qs ipc` subcommand (`show`, `call`, +`wait`, `listen`, `prop`) cannot be called from the CLI: `ipc call companion +show` runs `ipc show` instead, prints the target list and exits 0. Three +handlers had a `show()` nobody could reach; they are `open()` now. + ## Conventions - GPLv2 only, with the header notice in every source file. |
