summaryrefslogtreecommitdiff
path: root/bar/ActiveWindow.qml
diff options
context:
space:
mode:
Diffstat (limited to 'bar/ActiveWindow.qml')
-rw-r--r--bar/ActiveWindow.qml64
1 files changed, 35 insertions, 29 deletions
diff --git a/bar/ActiveWindow.qml b/bar/ActiveWindow.qml
index 80e3b31..e0b917d 100644
--- a/bar/ActiveWindow.qml
+++ b/bar/ActiveWindow.qml
@@ -7,40 +7,46 @@ import Quickshell.Widgets
import qs.components
import qs.config
-Rectangle {
- id: root
- property var toplevel: Hyprland.activeToplevel
- property var icon: Quickshell.iconPath(AppSearch.guessIcon(toplevel?.wayland?.appId), "image-missing")
-
- // use IRect
- implicitWidth: rowLayout.implicitWidth + General.rectMargin * 4
- implicitHeight: rowLayout.implicitHeight + General.rectMargin * 2
+Loader {
+ id: activeWindowLoader
anchors.centerIn: parent
+ active: ToplevelManager.activeToplevel?.activated ? 1 : 0
+ sourceComponent: Component {
+ Rectangle {
+ id: root
+ property var toplevel: Hyprland.activeToplevel
+ property var icon: Quickshell.iconPath(AppSearch.guessIcon(toplevel?.wayland?.appId), "image-missing")
- color: Colors.alt
- // according to docs, null could happen but doesn't seem to happen in practice so..
- // hypr toplevel.activated is always true and doesn't change either so..
- opacity: ToplevelManager.activeToplevel?.activated ? 1 : 0
+ // use IRect
+ implicitWidth: rowLayout.implicitWidth + General.rectMargin * 4
+ implicitHeight: rowLayout.implicitHeight + General.rectMargin * 2
+ anchors.centerIn: parent
- radius: Style.rounding.smaller
+ color: Colors.alt
+ // according to docs, null could happen but doesn't seem to happen in practice so..
+ // hypr toplevel.activated is always true and doesn't change either so..
+ // opacity: ToplevelManager.activeToplevel?.activated ? 1 : 0
- RowLayout {
- id: rowLayout
- anchors.centerIn: parent
- spacing: Bar.resourceIconTextSpacing
+ radius: Style.rounding.smaller
- IconImage {
- source: root.icon
- implicitWidth: Bar.appIconSize
- implicitHeight: Bar.appIconSize
- Layout.fillHeight: true
- Layout.fillWidth: false
- Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
- }
- IText {
- // TOOD: if not exist, use lazyloader or something hide this
- font.pixelSize: General.fontSize
- text: root?.toplevel?.wayland?.title || ""
+ RowLayout {
+ id: rowLayout
+ anchors.centerIn: parent
+ spacing: Bar.resourceIconTextSpacing
+
+ IconImage {
+ source: root.icon
+ implicitWidth: Bar.appIconSize
+ implicitHeight: Bar.appIconSize
+ Layout.fillHeight: true
+ Layout.fillWidth: false
+ Layout.alignment: Qt.AlignHCenter | Qt.AlignVCenter
+ }
+ IText {
+ font.pixelSize: General.fontSize
+ text: root?.toplevel?.wayland?.title || ""
+ }
+ }
}
}
}