From 891c8660e3f08c6110907ece44ebfdf2bf8c2114 Mon Sep 17 00:00:00 2001 From: LemmyCook Date: Thu, 18 Sep 2025 22:05:55 -0400 Subject: [PATCH] Properly hide ScreenRecorderIndicator when inactive (no spacing) --- Modules/Bar/Bar.qml | 44 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/Modules/Bar/Bar.qml b/Modules/Bar/Bar.qml index 04429d90..6ea274bc 100644 --- a/Modules/Bar/Bar.qml +++ b/Modules/Bar/Bar.qml @@ -54,6 +54,38 @@ Variants { right: Settings.data.bar.floating ? Settings.data.bar.marginHorizontal * Style.marginXL * scaling : 0 } + + // Filter out potentially invisible widgets so they we don't have extra spacing around an invisble widget. + // TODO: add activewindow + property var visibleLeftWidgets: { + if (!Settings.data.bar.widgets.left) return [] + return Settings.data.bar.widgets.left.filter(widget => { + if (widget.id === "ScreenRecorderIndicator") { + return ScreenRecorderService.isRecording + } + return true + }) + } + property var visibleCenterWidgets: { + if (!Settings.data.bar.widgets.center) return [] + return Settings.data.bar.widgets.center.filter(widget => { + if (widget.id === "ScreenRecorderIndicator") { + return ScreenRecorderService.isRecording + } + return true + }) + } + property var visibleRightWidgets: { + if (!Settings.data.bar.widgets.right) return [] + return Settings.data.bar.widgets.right.filter(widget => { + if (widget.id === "ScreenRecorderIndicator") { + return ScreenRecorderService.isRecording + } + return true + }) + } + + Item { anchors.fill: parent clip: true @@ -88,7 +120,7 @@ Variants { spacing: Style.marginS * root.scaling Repeater { - model: Settings.data.bar.widgets.left + model: visibleLeftWidgets delegate: BarWidgetLoader { widgetId: (modelData.id !== undefined ? modelData.id : "") widgetProps: { @@ -111,7 +143,7 @@ Variants { spacing: Style.marginS * root.scaling Repeater { - model: Settings.data.bar.widgets.center + model: visibleCenterWidgets delegate: BarWidgetLoader { widgetId: (modelData.id !== undefined ? modelData.id : "") widgetProps: { @@ -135,7 +167,7 @@ Variants { spacing: Style.marginS * root.scaling Repeater { - model: Settings.data.bar.widgets.right + model: visibleRightWidgets delegate: BarWidgetLoader { widgetId: (modelData.id !== undefined ? modelData.id : "") widgetProps: { @@ -169,7 +201,7 @@ Variants { spacing: Style.marginS * root.scaling Repeater { - model: Settings.data.bar.widgets.left + model: visibleLeftWidgets delegate: BarWidgetLoader { widgetId: (modelData.id !== undefined ? modelData.id : "") widgetProps: { @@ -194,7 +226,7 @@ Variants { spacing: Style.marginS * root.scaling Repeater { - model: Settings.data.bar.widgets.center + model: visibleCenterWidgets delegate: BarWidgetLoader { widgetId: (modelData.id !== undefined ? modelData.id : "") widgetProps: { @@ -220,7 +252,7 @@ Variants { spacing: Style.marginS * root.scaling Repeater { - model: Settings.data.bar.widgets.right + model: visibleRightWidgets delegate: BarWidgetLoader { widgetId: (modelData.id !== undefined ? modelData.id : "") widgetProps: {