From 376595cd0b16f095b94de6ee3f6c628a10bbda3f Mon Sep 17 00:00:00 2001 From: zach Date: Tue, 6 Oct 2026 13:30:27 +0200 Subject: [PATCH] fix: don't use zoom value when rendering wallpaper --- Helpers/Wallpapers.qml | 38 +++++++++++++++ Modules/ServiceLoader.qml | 4 +- Modules/Wallpaper/Wallpaper.qml | 51 -------------------- Plugins/ZShell/Internal/wallpaperservice.cpp | 10 +--- shell.qml | 1 - 5 files changed, 42 insertions(+), 62 deletions(-) delete mode 100644 Modules/Wallpaper/Wallpaper.qml diff --git a/Helpers/Wallpapers.qml b/Helpers/Wallpapers.qml index d02b01a..c335feb 100644 --- a/Helpers/Wallpapers.qml +++ b/Helpers/Wallpapers.qml @@ -5,7 +5,9 @@ import Quickshell import Quickshell.Io import QtQuick import ZShell.Models +import ZShell.Internal import ZShell.Config +import qs.Components import qs.Services import qs.Helpers import qs.Paths @@ -140,4 +142,40 @@ Searcher { } } } + + WallpaperService { + id: wallpaper + + path: root.current + } + + Variants { + model: Quickshell.screens + + WallpaperObject { + readonly property var crops: root.getCrop(modelData.name) + required property var modelData + + cropHeight: crops?.height ?? 1.0 + cropWidth: crops?.width ?? 1.0 + cropX: crops?.x ?? 0.0 + cropY: crops?.y ?? 0.0 + screen: modelData.name + service: wallpaper + zoom: crops?.zoom ?? 1.0 + + Behavior on cropHeight { + Anim {} + } + Behavior on cropWidth { + Anim {} + } + Behavior on cropX { + Anim {} + } + Behavior on cropY { + Anim {} + } + } + } } diff --git a/Modules/ServiceLoader.qml b/Modules/ServiceLoader.qml index 01a2092..4d8eae3 100644 --- a/Modules/ServiceLoader.qml +++ b/Modules/ServiceLoader.qml @@ -1,9 +1,9 @@ import Quickshell import QtQuick -import qs.Modules.Wallpaper +import qs.Helpers Scope { Component.onCompleted: { - Wallpaper; + Wallpapers; } } diff --git a/Modules/Wallpaper/Wallpaper.qml b/Modules/Wallpaper/Wallpaper.qml deleted file mode 100644 index 563e4e8..0000000 --- a/Modules/Wallpaper/Wallpaper.qml +++ /dev/null @@ -1,51 +0,0 @@ -pragma Singleton - -import Quickshell -import QtQuick -import ZShell.Internal -import qs.Components -import qs.Helpers - -Singleton { - id: root - - WallpaperService { - id: wallpaper - - path: Wallpapers.current - } - - Variants { - model: Quickshell.screens - - WallpaperObject { - readonly property var crops: Wallpapers.getCrop(modelData.name) - required property var modelData - - cropHeight: crops?.height ?? 1.0 - cropWidth: crops?.width ?? 1.0 - cropX: crops?.x ?? 0.0 - cropY: crops?.y ?? 0.0 - screen: modelData.name - service: wallpaper - zoom: crops?.zoom ?? 1.0 - - Behavior on cropHeight { - Anim { - } - } - Behavior on cropWidth { - Anim { - } - } - Behavior on cropX { - Anim { - } - } - Behavior on cropY { - Anim { - } - } - } - } -} diff --git a/Plugins/ZShell/Internal/wallpaperservice.cpp b/Plugins/ZShell/Internal/wallpaperservice.cpp index 9933218..40fb00b 100644 --- a/Plugins/ZShell/Internal/wallpaperservice.cpp +++ b/Plugins/ZShell/Internal/wallpaperservice.cpp @@ -614,17 +614,11 @@ QRectF WallpaperService::sourceRect( const QVariantMap& crops, const QString& screen, const QSize& size) const { QVariantMap crop = cropFor(crops, screen); - qreal zoom = crop.value("zoom", 1.0).toDouble(); - if (zoom <= 0.0) - zoom = 1.0; - else if (zoom > 5.0) - zoom = 5.0; - QRectF rect( crop.value("x", 0.0).toDouble(), crop.value("y", 0.0).toDouble(), - crop.value("width", 1.0).toDouble() / zoom, - crop.value("height", 1.0).toDouble() / zoom); + crop.value("width", 1.0).toDouble(), + crop.value("height", 1.0).toDouble()); if (size.isEmpty() || rect.isEmpty() || m_image.isNull()) return rect; diff --git a/shell.qml b/shell.qml index 57f6e6b..7b9edcf 100644 --- a/shell.qml +++ b/shell.qml @@ -8,7 +8,6 @@ import Quickshell import Quickshell.Services.UPower import qs.Modules -import qs.Modules.Wallpaper import qs.Modules.Lock import qs.Drawers import qs.Modules.Polkit