fix: don't use zoom value when rendering wallpaper

This commit is contained in:
2026-10-06 13:30:27 +02:00
parent 9f5e62f9c7
commit 376595cd0b
5 changed files with 42 additions and 62 deletions
+38
View File
@@ -5,7 +5,9 @@ import Quickshell
import Quickshell.Io import Quickshell.Io
import QtQuick import QtQuick
import ZShell.Models import ZShell.Models
import ZShell.Internal
import ZShell.Config import ZShell.Config
import qs.Components
import qs.Services import qs.Services
import qs.Helpers import qs.Helpers
import qs.Paths 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 {}
}
}
}
} }
+2 -2
View File
@@ -1,9 +1,9 @@
import Quickshell import Quickshell
import QtQuick import QtQuick
import qs.Modules.Wallpaper import qs.Helpers
Scope { Scope {
Component.onCompleted: { Component.onCompleted: {
Wallpaper; Wallpapers;
} }
} }
-51
View File
@@ -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 {
}
}
}
}
}
+2 -8
View File
@@ -614,17 +614,11 @@ QRectF WallpaperService::sourceRect(
const QVariantMap& crops, const QString& screen, const QSize& size) const { const QVariantMap& crops, const QString& screen, const QSize& size) const {
QVariantMap crop = cropFor(crops, screen); 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( QRectF rect(
crop.value("x", 0.0).toDouble(), crop.value("x", 0.0).toDouble(),
crop.value("y", 0.0).toDouble(), crop.value("y", 0.0).toDouble(),
crop.value("width", 1.0).toDouble() / zoom, crop.value("width", 1.0).toDouble(),
crop.value("height", 1.0).toDouble() / zoom); crop.value("height", 1.0).toDouble());
if (size.isEmpty() || rect.isEmpty() || m_image.isNull()) return rect; if (size.isEmpty() || rect.isEmpty() || m_image.isNull()) return rect;
-1
View File
@@ -8,7 +8,6 @@
import Quickshell import Quickshell
import Quickshell.Services.UPower import Quickshell.Services.UPower
import qs.Modules import qs.Modules
import qs.Modules.Wallpaper
import qs.Modules.Lock import qs.Modules.Lock
import qs.Drawers import qs.Drawers
import qs.Modules.Polkit import qs.Modules.Polkit