From 3462bcc46ecf74f576ea4397f16492c16bd75b10 Mon Sep 17 00:00:00 2001 From: Nippy Date: Fri, 8 May 2026 19:50:49 +0200 Subject: raveos update --- .../theme-data/dms/Widgets/WindowBlur.qml | 65 ++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 raveos-hyprland-theme/theme-data/dms/Widgets/WindowBlur.qml (limited to 'raveos-hyprland-theme/theme-data/dms/Widgets/WindowBlur.qml') diff --git a/raveos-hyprland-theme/theme-data/dms/Widgets/WindowBlur.qml b/raveos-hyprland-theme/theme-data/dms/Widgets/WindowBlur.qml new file mode 100644 index 0000000..3b45212 --- /dev/null +++ b/raveos-hyprland-theme/theme-data/dms/Widgets/WindowBlur.qml @@ -0,0 +1,65 @@ +import QtQuick +import qs.Services + +Item { + id: root + + visible: false + + required property var targetWindow + property var blurItem: null + property real blurX: 0 + property real blurY: 0 + property real blurWidth: 0 + property real blurHeight: 0 + property real blurRadius: 0 + + property var _region: null + + function _apply() { + if (!BlurService.enabled || !targetWindow) { + _cleanup(); + return; + } + + if (!_region) + _region = BlurService.createBlurRegion(targetWindow); + + if (!_region) + return; + + _region.item = Qt.binding(() => root.blurItem); + _region.x = Qt.binding(() => root.blurX); + _region.y = Qt.binding(() => root.blurY); + _region.width = Qt.binding(() => root.blurWidth); + _region.height = Qt.binding(() => root.blurHeight); + _region.radius = Qt.binding(() => root.blurRadius); + } + + function _cleanup() { + if (!_region) + return; + BlurService.destroyBlurRegion(targetWindow, _region); + _region = null; + } + + Connections { + target: BlurService + function onEnabledChanged() { + root._apply(); + } + } + + Connections { + target: root.targetWindow + function onVisibleChanged() { + if (root.targetWindow && root.targetWindow.visible) { + root._region = null; + root._apply(); + } + } + } + + Component.onCompleted: _apply() + Component.onDestruction: _cleanup() +} -- cgit v1.3