The notification menu learns what every other popover already knew

Popover's container is a plain Item and never measures its children, so
the three-dots menu on a notification card opened as a 240x28 sliver
with its one row clipped out of existence. TrayMenu and AgentUsagePanel
both carry the antidote — implicit sizes on the Popover itself, taken
from the content column — and now the notification settings menu does
too, with rows filling the window width so the hover reaches the edges.

Claude-Session: https://claude.ai/code/session_01W8icivxZcmFTR2g6DkYhjT
This commit is contained in:
Gabriel Brown
2026-08-26 19:50:31 -04:00
parent 5f09c5ee38
commit 54dfa977ee
@@ -177,12 +177,20 @@ Rectangle {
id: settingsMenu
anchorItem: settingsMenuButton
// A Column already measures itself from its children, and in Qt 6 both
// implicit sizes are read-only on a positioner -- assigning them makes
// the whole shell fail to load rather than just this menu.
// Popover's container is a plain Item and does not size itself from its
// children, so the window dimensions come from the column's implicit
// size — the same pattern TrayMenu uses. Rows take their *actual* width
// from the window in the other direction; the two chains are
// independent, so there is no binding loop.
implicitWidth: Math.max(menuBody.implicitWidth + contentPadding * 2, 200)
implicitHeight: menuBody.implicitHeight + contentPadding * 2
Column {
id: menuBody
width: parent.width
TrayMenuRow {
id: notificationSettings
width: parent.width
label: "Notification settings"
onActivated: {
ShellState.openSettings("notifications");