From 9071de0d601e588b6840b10d84edd6edc60c5a64 Mon Sep 17 00:00:00 2001 From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> Date: Mon, 5 May 2025 11:04:03 +1000 Subject: feat: shadow Border exclusivity Fix slider handle text colour --- modules/background/Border.qml | 120 ++++++++++++++++++++++++++++-------------- 1 file changed, 81 insertions(+), 39 deletions(-) (limited to 'modules/background') diff --git a/modules/background/Border.qml b/modules/background/Border.qml index 752a814..a11c565 100644 --- a/modules/background/Border.qml +++ b/modules/background/Border.qml @@ -4,54 +4,96 @@ import Quickshell import QtQuick import QtQuick.Effects -StyledWindow { - id: win - - name: "border" - exclusionMode: ExclusionMode.Ignore - - mask: Region { - x: BackgroundConfig.border.thickness - y: BackgroundConfig.border.thickness - width: win.screen.width - BackgroundConfig.border.thickness * 2 - height: win.screen.height - BackgroundConfig.border.thickness * 2 - intersection: Intersection.Xor - } +Scope { + id: root - anchors.top: true - anchors.bottom: true - anchors.left: true - anchors.right: true + required property ShellScreen screen - StyledRect { - id: rect + StyledWindow { + id: win - anchors.fill: parent - color: Appearance.alpha(Appearance.colours.m3surface, false) - visible: false - } + screen: root.screen + name: "border" + exclusionMode: ExclusionMode.Ignore + + mask: Region { + x: BackgroundConfig.border.thickness + y: BackgroundConfig.border.thickness + width: win.screen.width - BackgroundConfig.border.thickness * 2 + height: win.screen.height - BackgroundConfig.border.thickness * 2 + intersection: Intersection.Xor + } + + anchors.top: true + anchors.bottom: true + anchors.left: true + anchors.right: true + + StyledRect { + id: rect + + anchors.fill: parent + color: Appearance.alpha(Appearance.colours.m3surface, false) + visible: false + } + + Item { + id: mask + + anchors.fill: parent + layer.enabled: true + visible: false - Item { - id: mask + Rectangle { + anchors.fill: parent + anchors.margins: BackgroundConfig.border.thickness + radius: BackgroundConfig.border.rounding + } + } - anchors.fill: parent - layer.enabled: true - visible: false + MultiEffect { + id: effect - Rectangle { + visible: false anchors.fill: parent - anchors.margins: BackgroundConfig.border.thickness - radius: BackgroundConfig.border.rounding + maskEnabled: true + maskInverted: true + maskSource: mask + source: rect + maskThresholdMin: 0.5 + maskSpreadAtMin: 1 + } + + LayerShadow { + source: effect } } - MultiEffect { - anchors.fill: parent - maskEnabled: true - maskInverted: true - maskSource: mask - source: rect - maskThresholdMin: 0.5 - maskSpreadAtMin: 1 + ExclusionZone { + anchors.left: false + } + + ExclusionZone { + anchors.top: false + } + + ExclusionZone { + anchors.right: false + } + + ExclusionZone { + anchors.bottom: false + } + + component ExclusionZone: StyledWindow { + screen: root.screen + name: "border-exclusion" + width: BackgroundConfig.border.thickness + height: BackgroundConfig.border.thickness + + anchors.top: true + anchors.left: true + anchors.bottom: true + anchors.right: true } } -- cgit v1.2.3-freya