diff --git a/Modules/Background/Dimmer.qml b/Modules/Background/Dimmer.qml deleted file mode 100644 index 9456d97..0000000 --- a/Modules/Background/Dimmer.qml +++ /dev/null @@ -1,76 +0,0 @@ -import QtQuick -import QtQuick.Effects -import Quickshell -import Quickshell.Wayland -import qs.Commons -import qs.Services -import qs.Widgets - -Variants { - model: Quickshell.screens - - delegate: Loader { - required property ShellScreen modelData - - // Dimmer is only active on the screen where the panel is currently open. - active: { - if (Settings.isLoaded && Settings.data.general.dimDesktop && modelData !== undefined && PanelService.openedPanel !== null && PanelService.openedPanel.item !== undefined && PanelService.openedPanel.item !== null) { - return (PanelService.openedPanel.item.screen === modelData) - } - - return false - } - - sourceComponent: PanelWindow { - id: panel - - property real customOpacity: 0 - - Component.onCompleted: { - if (modelData) { - Logger.log("Dimmer", "Loaded on", modelData.name) - } - - // When a NPanel opens it seems it is initialized with the primary screen for a very brief moment - // before the screen actually updates to the proper value. We use a timer to delay the fade in to avoid - // a single frame flicker on the main screen when opening a panel on another screen. - fadeInTimer.start() - } - - Connections { - target: PanelService - function onWillClose() { - customOpacity = Style.opacityNone - } - } - - Timer { - id: fadeInTimer - interval: 100 - onTriggered: customOpacity = Style.opacityHeavy - } - - screen: modelData - - WlrLayershell.layer: WlrLayer.Top - WlrLayershell.exclusionMode: ExclusionMode.Ignore - WlrLayershell.keyboardFocus: WlrKeyboardFocus.None - WlrLayershell.namespace: "quickshell-dimmer" - - // mask: Region {} - anchors { - top: true - bottom: true - right: true - left: true - } - - color: Qt.alpha(Color.mShadow, customOpacity) - Behavior on color { - ColorAnimation { - duration: Style.animationSlow - } - } - } - } -} diff --git a/Widgets/NPanel.qml b/Widgets/NPanel.qml index a232b84..5b4b898 100644 --- a/Widgets/NPanel.qml +++ b/Widgets/NPanel.qml @@ -38,6 +38,7 @@ Loader { readonly property real originalOpacity: 0.0 property real scaleValue: originalScale property real opacityValue: originalOpacity + property real dimmingOpacity: 0 property alias isClosing: hideTimer.running @@ -108,6 +109,7 @@ Loader { // ----------------------------------------- function close() { + dimmingOpacity = 0 scaleValue = originalScale opacityValue = originalOpacity hideTimer.start() @@ -149,6 +151,7 @@ Loader { Component.onCompleted: { Logger.log("NPanel", "Opened", root.objectName) + dimmingOpacity = Style.opacityHeavy } Connections { @@ -174,17 +177,14 @@ Loader { visible: true - // No dimming here - color: Color.transparent - - WlrLayershell.layer: Settings.data.general.dimDesktop ? WlrLayer.Overlay : WlrLayer.Top + color: Settings.data.general.dimDesktop ? Qt.alpha(Color.mShadow, dimmingOpacity) : Color.transparent WlrLayershell.exclusionMode: ExclusionMode.Ignore WlrLayershell.namespace: "noctalia-panel" WlrLayershell.keyboardFocus: root.panelKeyboardFocus ? WlrKeyboardFocus.OnDemand : WlrKeyboardFocus.None Behavior on color { ColorAnimation { - duration: Style.animationNormal + duration: Style.animationSlow } } @@ -208,6 +208,7 @@ Loader { onClicked: root.close() } + // The actual panel's content Rectangle { id: panelBackground color: panelBackgroundColor diff --git a/shell.qml b/shell.qml index 6f0e8ea..24544f5 100644 --- a/shell.qml +++ b/shell.qml @@ -37,7 +37,6 @@ ShellRoot { Background {} Overview {} ScreenCorners {} - Dimmer {} Bar {} Dock {}