diff options
| -rw-r--r-- | modules/bar/popouts/Content.qml | 13 | ||||
| -rw-r--r-- | modules/bar/popouts/TrayMenu.qml | 7 | ||||
| -rw-r--r-- | modules/bar/popouts/Wrapper.qml | 4 | ||||
| -rw-r--r-- | modules/drawers/Interactions.qml | 15 |
4 files changed, 15 insertions, 24 deletions
diff --git a/modules/bar/popouts/Content.qml b/modules/bar/popouts/Content.qml index 0e0f5f3..684f702 100644 --- a/modules/bar/popouts/Content.qml +++ b/modules/bar/popouts/Content.qml @@ -1,6 +1,5 @@ pragma ComponentBehavior: Bound -import qs.services import qs.config import Quickshell import Quickshell.Services.SystemTray @@ -10,10 +9,6 @@ Item { id: root required property Item wrapper - required property ShellScreen screen - required property string currentName - required property real currentCenter - required property bool hasCurrent anchors.centerIn: parent @@ -63,10 +58,10 @@ Item { sourceComponent: trayMenuComp Connections { - target: root + target: root.wrapper function onHasCurrentChanged(): void { - if (root.hasCurrent && trayMenu.shouldBeActive) { + if (root.wrapper.hasCurrent && trayMenu.shouldBeActive) { trayMenu.sourceComponent = null; trayMenu.sourceComponent = trayMenuComp; } @@ -77,7 +72,7 @@ Item { id: trayMenuComp TrayMenu { - popouts: root + popouts: root.wrapper trayItem: trayMenu.modelData.menu } } @@ -89,7 +84,7 @@ Item { id: popout required property string name - property bool shouldBeActive: root.currentName === name + property bool shouldBeActive: root.wrapper.currentName === name anchors.verticalCenter: parent.verticalCenter anchors.right: parent.right diff --git a/modules/bar/popouts/TrayMenu.qml b/modules/bar/popouts/TrayMenu.qml index 07742db..59f310b 100644 --- a/modules/bar/popouts/TrayMenu.qml +++ b/modules/bar/popouts/TrayMenu.qml @@ -5,6 +5,7 @@ import qs.services import qs.config import Quickshell import Quickshell.Widgets +import Quickshell.Hyprland import QtQuick import QtQuick.Controls @@ -26,6 +27,12 @@ StackView { popEnter: Anim {} popExit: Anim {} + HyprlandFocusGrab { + active: true + windows: [QsWindow.window] + onCleared: root.popouts.hasCurrent = false + } + component Anim: Transition { NumberAnimation { duration: 0 diff --git a/modules/bar/popouts/Wrapper.qml b/modules/bar/popouts/Wrapper.qml index 8525c7a..293f9d5 100644 --- a/modules/bar/popouts/Wrapper.qml +++ b/modules/bar/popouts/Wrapper.qml @@ -72,10 +72,6 @@ Item { sourceComponent: Content { wrapper: root - screen: root.screen - currentName: root.currentName - currentCenter: root.currentCenter - hasCurrent: root.hasCurrent } } diff --git a/modules/drawers/Interactions.qml b/modules/drawers/Interactions.qml index 60e74de..6640d22 100644 --- a/modules/drawers/Interactions.qml +++ b/modules/drawers/Interactions.qml @@ -60,7 +60,8 @@ MouseArea { if (!utilitiesShortcutActive) visibilities.utilities = false; - popouts.hasCurrent = false; + if (!popouts.currentName.startsWith("traymenu")) + popouts.hasCurrent = false; if (Config.bar.showOnHover) bar.isHovered = false; @@ -138,16 +139,8 @@ MouseArea { } // Show popouts on hover - const popout = panels.popouts; - if (x < bar.implicitWidth + popout.width) { - if (x < bar.implicitWidth) - // Handle like part of bar - bar.checkPopout(y); - else - // Keep on hover - popouts.hasCurrent = withinPanelHeight(popout, x, y); - } else - popouts.hasCurrent = false; + if (x < bar.implicitWidth) + bar.checkPopout(y); } // Monitor individual visibility changes |