From 542562f988a8b6bb1a4540c85bff8d6cce26fb41 Mon Sep 17 00:00:00 2001 From: bbedward Date: Tue, 18 Nov 2025 16:03:30 -0500 Subject: [PATCH] dankbar: missing background click handler for plugin popout --- .../Modules/DankBar/AutoHideManager.qml | 183 ------------------ quickshell/Modules/Plugins/PluginPopout.qml | 2 + 2 files changed, 2 insertions(+), 183 deletions(-) delete mode 100644 quickshell/Modules/DankBar/AutoHideManager.qml diff --git a/quickshell/Modules/DankBar/AutoHideManager.qml b/quickshell/Modules/DankBar/AutoHideManager.qml deleted file mode 100644 index ad353a2d..00000000 --- a/quickshell/Modules/DankBar/AutoHideManager.qml +++ /dev/null @@ -1,183 +0,0 @@ -import QtQuick -import Quickshell -import Quickshell.Wayland -import qs.Common -import qs.Services - -Item { - id: root - - required property var barWindow - required property var axis - required property var appDrawerLoader - required property var dankDashPopoutLoader - required property var processListPopoutLoader - required property var notificationCenterLoader - required property var batteryPopoutLoader - required property var layoutPopoutLoader - required property var vpnPopoutLoader - required property var controlCenterLoader - required property var clipboardHistoryModalPopup - required property var systemUpdateLoader - required property var notepadInstance - - property alias reveal: core.reveal - property alias autoHide: core.autoHide - property alias backgroundTransparency: core.backgroundTransparency - property alias hasActivePopout: core.hasActivePopout - property alias mouseArea: topBarMouseArea - - Item { - id: inputMask - - readonly property int barThickness: barWindow.px(barWindow.effectiveBarThickness + SettingsData.dankBarSpacing) - - readonly property bool showing: SettingsData.dankBarVisible && (core.reveal - || (CompositorService.isNiri && NiriService.inOverview && SettingsData.dankBarOpenOnOverview) - || !core.autoHide) - - readonly property int maskThickness: showing ? barThickness : 1 - - x: { - if (!axis.isVertical) { - return 0 - } else { - switch (SettingsData.dankBarPosition) { - case SettingsData.Position.Left: return 0 - case SettingsData.Position.Right: return parent.width - maskThickness - default: return 0 - } - } - } - y: { - if (axis.isVertical) { - return 0 - } else { - switch (SettingsData.dankBarPosition) { - case SettingsData.Position.Top: return 0 - case SettingsData.Position.Bottom: return parent.height - maskThickness - default: return 0 - } - } - } - width: axis.isVertical ? maskThickness : parent.width - height: axis.isVertical ? parent.height : maskThickness - } - - Region { - id: mask - item: inputMask - } - - property alias maskRegion: mask - - QtObject { - id: core - - property real backgroundTransparency: SettingsData.dankBarTransparency - property bool autoHide: SettingsData.dankBarAutoHide - property bool revealSticky: false - - property bool notepadInstanceVisible: notepadInstance?.isVisible ?? false - - readonly property bool hasActivePopout: { - const loaders = [{ - "loader": appDrawerLoader, - "prop": "shouldBeVisible" - }, { - "loader": dankDashPopoutLoader, - "prop": "shouldBeVisible" - }, { - "loader": processListPopoutLoader, - "prop": "shouldBeVisible" - }, { - "loader": notificationCenterLoader, - "prop": "shouldBeVisible" - }, { - "loader": batteryPopoutLoader, - "prop": "shouldBeVisible" - }, { - "loader": layoutPopoutLoader, - "prop": "shouldBeVisible" - }, { - "loader": vpnPopoutLoader, - "prop": "shouldBeVisible" - }, { - "loader": controlCenterLoader, - "prop": "shouldBeVisible" - }, { - "loader": clipboardHistoryModalPopup, - "prop": "visible" - }, { - "loader": systemUpdateLoader, - "prop": "shouldBeVisible" - }] - return notepadInstanceVisible || loaders.some(item => { - if (item.loader) { - return item.loader?.item?.[item.prop] - } - return false - }) - } - - property bool reveal: { - if (CompositorService.isNiri && NiriService.inOverview) { - return SettingsData.dankBarOpenOnOverview - } - return SettingsData.dankBarVisible && (!autoHide || topBarMouseArea.containsMouse || hasActivePopout || revealSticky) - } - - onHasActivePopoutChanged: { - if (!hasActivePopout && autoHide && !topBarMouseArea.containsMouse) { - revealSticky = true - revealHold.restart() - } - } - } - - Timer { - id: revealHold - interval: 250 - repeat: false - onTriggered: core.revealSticky = false - } - - Connections { - function onDankBarTransparencyChanged() { - core.backgroundTransparency = SettingsData.dankBarTransparency - } - - target: SettingsData - } - - Connections { - target: topBarMouseArea - function onContainsMouseChanged() { - if (topBarMouseArea.containsMouse) { - core.revealSticky = true - revealHold.stop() - } else { - if (core.autoHide && !core.hasActivePopout) { - revealHold.restart() - } - } - } - } - - MouseArea { - id: topBarMouseArea - y: !barWindow.isVertical ? (SettingsData.dankBarPosition === SettingsData.Position.Bottom ? parent.height - height : 0) : 0 - x: barWindow.isVertical ? (SettingsData.dankBarPosition === SettingsData.Position.Right ? parent.width - width : 0) : 0 - height: !barWindow.isVertical ? barWindow.px(barWindow.effectiveBarThickness + SettingsData.dankBarSpacing) : undefined - width: barWindow.isVertical ? barWindow.px(barWindow.effectiveBarThickness + SettingsData.dankBarSpacing) : undefined - anchors { - left: !barWindow.isVertical ? parent.left : (SettingsData.dankBarPosition === SettingsData.Position.Left ? parent.left : undefined) - right: !barWindow.isVertical ? parent.right : (SettingsData.dankBarPosition === SettingsData.Position.Right ? parent.right : undefined) - top: barWindow.isVertical ? parent.top : undefined - bottom: barWindow.isVertical ? parent.bottom : undefined - } - hoverEnabled: SettingsData.dankBarAutoHide && !core.reveal - acceptedButtons: Qt.NoButton - enabled: SettingsData.dankBarAutoHide && !core.reveal - } -} \ No newline at end of file diff --git a/quickshell/Modules/Plugins/PluginPopout.qml b/quickshell/Modules/Plugins/PluginPopout.qml index 74e76d13..014ec167 100644 --- a/quickshell/Modules/Plugins/PluginPopout.qml +++ b/quickshell/Modules/Plugins/PluginPopout.qml @@ -26,6 +26,8 @@ DankPopout { screen: triggerScreen shouldBeVisible: false + onBackgroundClicked: close() + content: Component { Rectangle { id: popoutContainer