diff --git a/README.md b/README.md index e3fcba32..e3bebcd7 100644 --- a/README.md +++ b/README.md @@ -333,7 +333,8 @@ default, you must create it manually. "bar": { "activeWindow": { "compact": false, - "inverted": false + "inverted": false, + "showOnHover": true }, "clock": { "showIcon": true diff --git a/config/BarConfig.qml b/config/BarConfig.qml index 2e041082..310344b1 100644 --- a/config/BarConfig.qml +++ b/config/BarConfig.qml @@ -90,6 +90,7 @@ JsonObject { component ActiveWindow: JsonObject { property bool compact: false property bool inverted: false + property bool showOnHover: true } component Tray: JsonObject { diff --git a/config/Config.qml b/config/Config.qml index 6efe9600..2fd8c436 100644 --- a/config/Config.qml +++ b/config/Config.qml @@ -181,7 +181,8 @@ Singleton { }, activeWindow: { compact: bar.activeWindow.compact, - inverted: bar.activeWindow.inverted + inverted: bar.activeWindow.inverted, + showOnHover: bar.activeWindow.showOnHover }, tray: { background: bar.tray.background, diff --git a/modules/bar/Bar.qml b/modules/bar/Bar.qml index cb384e39..95c166e6 100644 --- a/modules/bar/Bar.qml +++ b/modules/bar/Bar.qml @@ -68,7 +68,7 @@ ColumnLayout { popouts.hasCurrent = false; item.expanded = true; } - } else if (id === "activeWindow" && Config.bar.popouts.activeWindow) { + } else if (id === "activeWindow" && Config.bar.popouts.activeWindow && Config.bar.activeWindow.showOnHover) { popouts.currentName = id.toLowerCase(); popouts.currentCenter = item.mapToItem(root, 0, itemHeight / 2).y; popouts.hasCurrent = true; @@ -134,6 +134,7 @@ ColumnLayout { DelegateChoice { roleValue: "activeWindow" delegate: WrappedLoader { + Layout.fillWidth: true sourceComponent: ActiveWindow { bar: root monitor: Brightness.getMonitorForScreen(root.screen) diff --git a/modules/bar/components/ActiveWindow.qml b/modules/bar/components/ActiveWindow.qml index 3eb69041..4881f420 100644 --- a/modules/bar/components/ActiveWindow.qml +++ b/modules/bar/components/ActiveWindow.qml @@ -38,6 +38,21 @@ Item { implicitWidth: Math.max(icon.implicitWidth, current.implicitHeight) implicitHeight: icon.implicitHeight + current.implicitWidth + current.anchors.topMargin + Loader { + anchors.fill: parent + active: !Config.bar.activeWindow.showOnHover + + sourceComponent: MouseArea { + cursorShape: Qt.PointingHandCursor + onClicked: { + const popouts = root.bar.popouts; + popouts.currentName = "activewindow"; + popouts.currentCenter = root.mapToItem(root.bar, 0, root.implicitHeight / 2).y; + popouts.hasCurrent = true; + } + } + } + MaterialIcon { id: icon