diff --git a/Drawers/Windows.qml b/Drawers/Windows.qml index 2be2e04..adc63bd 100644 --- a/Drawers/Windows.qml +++ b/Drawers/Windows.qml @@ -1,6 +1,7 @@ pragma ComponentBehavior: Bound import QtQuick +import QtQuick.Controls import QtQuick.Effects import Quickshell import Quickshell.Io @@ -127,7 +128,7 @@ CustomWindow { HyprlandFocusGrab { id: focusGrab - active: visibilities.dock || visibilities.resources || visibilities.launcher || visibilities.sidebar || visibilities.dashboard || visibilities.settings || visibilities.clipboard || (panels.popouts.hasCurrent && panels.popouts.currentName.startsWith("traymenu") && !Config.bar.tray.showOnHover) + active: visibilities.dock || visibilities.resources || visibilities.launcher || visibilities.sidebar || visibilities.dashboard || visibilities.settings || visibilities.clipboard || (panels.popouts.hasCurrent && panels.popouts.currentName.startsWith("traymenu") && (!Config.bar.tray.showOnHover || (panels.popouts.current as StackView)?.depth > 1)) windows: [root] onCleared: { diff --git a/Modules/Bar/Bar.qml b/Modules/Bar/Bar.qml index ac293c6..146897d 100644 --- a/Modules/Bar/Bar.qml +++ b/Modules/Bar/Bar.qml @@ -3,12 +3,9 @@ pragma ComponentBehavior: Bound import Quickshell import QtQuick import QtQuick.Layouts -import qs.Components import qs.Modules import qs.Config -import qs.Helpers import qs.Modules.SysTray -import qs.Modules.SysTray.Widgets import qs.Modules.Updates RowLayout { @@ -25,7 +22,7 @@ RowLayout { const ch = childAt(x, height / 2) as WrappedLoader; if (!ch || ch?.id === "spacer") { - if (!popouts.currentName.startsWith("traymenu")) + if (!popouts.currentName.startsWith("traymenu") || Config.bar.tray.showOnHover) popouts.hasCurrent = false; return; } diff --git a/Modules/Launcher/Wrapper.qml b/Modules/Launcher/Wrapper.qml index 84d18ab..1df7f68 100644 --- a/Modules/Launcher/Wrapper.qml +++ b/Modules/Launcher/Wrapper.qml @@ -15,7 +15,7 @@ Item { if (visibilities.resources && panels.resourcesWrapper.x + panels.resourcesWrapper.width > root.x) max -= panels.resources.nonAnimHeight; if (panels.popouts.hasCurrent) - if (panels.popouts.current.x + panels.popouts.current.width > root.x && panels.popouts.current.x < root.x + root.width) + if (panels.popouts.current?.x + panels.popouts.current?.width > root.x && panels.popouts.current?.x < root.x + root.width) max -= panels.popouts.nonAnimHeight; return max; }