Review everything shipped this weekend, and fix what the reviewers caught

Claude-Session: https://claude.ai/code/session_01Ms2FbjQy31TVf3CEvQhGM8
This commit is contained in:
Gabriel Brown
2026-08-24 13:29:42 -04:00
parent ffce48964e
commit 07db1068f1
42 changed files with 959 additions and 219 deletions
@@ -32,9 +32,24 @@ PopupWindow {
implicitWidth: Math.min(360, Math.max(menu.implicitWidth + Theme.popoverPadding * 2, 240))
implicitHeight: menu.implicitHeight + Theme.popoverPadding * 2
color: "transparent"
visible: false
grabFocus: true
// Whether the dock has asked for the menu. Visibility is that AND a live
// anchor, rather than the request alone: the dock icon a menu is anchored
// to is a delegate, and a delegate dies when its app's last window closes.
// An anchored PopupWindow whose anchor has gone stays mapped with a null
// anchor -- a menu hanging over the desktop, attached to nothing, holding
// the dock revealed behind it.
property bool requested: false
visible: root.requested && root.anchorItem !== null
onAnchorItemChanged: if (root.anchorItem === null) root.requested = false
// Read by the Dock's interaction watchdog. A menu with the pointer on it is
// a menu being read, not a stuck flag -- and the pointer being here means
// it is not on the dock, which is the only other thing the dock can see.
readonly property bool hovered: menuPointer.hovered
// Long window titles are the one thing here that can be arbitrarily wide,
// and a menu as wide as a browser tab's title is not a menu.
function shortTitle(toplevel: var): string {
@@ -99,6 +114,10 @@ PopupWindow {
border.width: 1
border.color: Theme.alpha(Theme.fg, 0.08)
HoverHandler {
id: menuPointer
}
PrismEdge {
anchors.top: parent.top
anchors.topMargin: 1
@@ -125,7 +144,7 @@ PopupWindow {
label: root.shortTitle(modelData)
onActivated: {
root.focusToplevel(modelData);
root.visible = false;
root.requested = false;
}
}
}
@@ -151,7 +170,7 @@ PopupWindow {
label: modelData.name
onActivated: {
modelData.execute();
root.visible = false;
root.requested = false;
}
}
}
@@ -175,7 +194,7 @@ PopupWindow {
onActivated: {
if (root.entry)
root.entry.execute();
root.visible = false;
root.requested = false;
}
}
@@ -191,7 +210,7 @@ PopupWindow {
root.unpin();
else
root.pin();
root.visible = false;
root.requested = false;
}
}
@@ -201,7 +220,7 @@ PopupWindow {
rowEnabled: root.windows.length > 0
onActivated: {
root.quit();
root.visible = false;
root.requested = false;
}
}
@@ -218,7 +237,7 @@ PopupWindow {
label: "Dock settings"
onActivated: {
ShellState.openSettings("dock");
root.visible = false;
root.requested = false;
}
}
}