From 54dfa977ee549e74e9e15ca0d956733d648c7190 Mon Sep 17 00:00:00 2001 From: Gabriel Brown Date: Wed, 26 Aug 2026 19:50:31 -0400 Subject: [PATCH] The notification menu learns what every other popover already knew MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 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 --- .../modules/notifications/NotificationCard.qml | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/config/dot/quickshell/modules/notifications/NotificationCard.qml b/config/dot/quickshell/modules/notifications/NotificationCard.qml index 91358fc..f6f4f14 100644 --- a/config/dot/quickshell/modules/notifications/NotificationCard.qml +++ b/config/dot/quickshell/modules/notifications/NotificationCard.qml @@ -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");