fix: blobs now allow to be drawn in device pixels to stay sharp
C++ / fmt (pull_request) Failing after 5s
C++ / build (pull_request) Failing after 10s
C++ / clang-tidy (pull_request) Failing after 10s
JS/TS / fmt (pull_request) Successful in 9s
JS/TS / lint (pull_request) Successful in 25s
Python / static (pull_request) Successful in 34s
Rust / build (pull_request) Successful in 51s
Python / verify (pull_request) Failing after 1m25s
Rust / fmt (pull_request) Successful in 39s
Rust / clippy (pull_request) Successful in 59s

This commit is contained in:
2026-10-30 01:52:33 +01:00
parent 78a9577209
commit c5608dc9b9
30 changed files with 794 additions and 435 deletions
+2 -1
View File
@@ -8,6 +8,7 @@ import ZShell.Components
import qs.Components
import qs.Modules.Bar.Components
import qs.Modules.Bar.Popouts
import ZShell
SnapLayout {
id: root
@@ -23,7 +24,7 @@ SnapLayout {
function axisCenterOf(item: Item): real {
const c = item.mapToItem(root, item.implicitWidth / 2, item.implicitHeight / 2);
return horizontal ? Math.floor(c.x) : Math.floor(c.y);
return horizontal ? ZUtils.snap(c.x, item) : ZUtils.snap(c.y, item);
}
function checkPopout(pos: real): void {
+4 -4
View File
@@ -4,6 +4,7 @@ import QtQuick
import Quickshell
import qs.Components
import ZShell.Config
import ZShell
Item {
id: root
@@ -36,7 +37,7 @@ Item {
const diff = parent.width - Math.floor(off + content.nonAnimWidth);
if (diff < 0)
return off + diff;
return Math.floor(Math.max(off, 0));
return ZUtils.snap(Math.max(off, 0), root);
}
y: {
if (horizontal)
@@ -46,12 +47,11 @@ Item {
const diff = parent.height - Math.floor(off + content.nonAnimHeight);
if (diff < 0)
return off + diff;
return Math.max(off, 0);
return ZUtils.snap(Math.max(off, 0), root);
}
Behavior on offsetScale {
Anim {
}
Anim {}
}
Behavior on x {
enabled: !root.horizontal || root.offsetScale < 1
+3 -2
View File
@@ -2,6 +2,7 @@ import Quickshell
import QtQuick
import qs.Components
import ZShell.Config
import ZShell
Item {
id: root
@@ -26,8 +27,8 @@ Item {
detachedMode = "";
}
implicitHeight: nonAnimHeight
implicitWidth: nonAnimWidth
implicitHeight: ZUtils.snap(nonAnimHeight, root)
implicitWidth: ZUtils.snap(nonAnimWidth, root)
Behavior on implicitHeight {
enabled: root.offsetScale < 1
+4 -4
View File
@@ -17,7 +17,7 @@ Item {
implicitWidth: btn.implicitWidth * 0.9
implicitHeight: btn.implicitHeight * 0.9
BlobGroup {
BlobGroup2 {
id: blobGroup
color: Colors.palette.m3surfaceContainerHighest
@@ -29,7 +29,7 @@ Item {
}
}
BlobRect {
BlobRect2 {
id: btnRect
anchors.fill: parent
@@ -42,7 +42,7 @@ Item {
}
}
BlobRect {
BlobRect2 {
id: rect
anchors.right: parent.right
@@ -143,8 +143,8 @@ Item {
]
SnapLayout {
orientation: Qt.Vertical
id: layout
orientation: Qt.Vertical
anchors.centerIn: parent
spacing: Tokens.spacing.extraSmall
+1 -1
View File
@@ -9,7 +9,6 @@ import ZShell.Config
import qs.Services
SnapLayout {
orientation: Qt.Vertical
id: root
property bool animateScroll: false
@@ -69,6 +68,7 @@ orientation: Qt.Vertical
}
spacing: Tokens.spacing.largeIncreased
orientation: Qt.Vertical
Component.onCompleted: applySearchAnchor()
+2 -1
View File
@@ -1,5 +1,6 @@
import QtQuick
import QtQuick.Layouts
import ZShell.Components
import ZShell.Config
import qs.Components
import qs.Services
@@ -10,7 +11,7 @@ CustomText {
Layout.bottomMargin: Tokens.spacing.extraSmall
Layout.fillWidth: true
Layout.leftMargin: Tokens.padding.extraSmall
Layout.topMargin: first ? 0 : Tokens.spacing.largeIncreased - ((parent as ColumnLayout).spacing ?? 0)
Layout.topMargin: first ? 0 : Tokens.spacing.largeIncreased - ((parent as SnapLayout).spacing ?? 0)
color: Colors.palette.m3onSurfaceVariant
elide: Text.ElideRight
font: Tokens.font.label.medium
+6 -2
View File
@@ -18,10 +18,12 @@ PageBase {
title: qsTr("All apps")
SnapLayout {
orientation: Qt.Vertical
anchors.horizontalCenter: parent.horizontalCenter
anchors.top: parent.top
spacing: Tokens.spacing.extraSmall / 2
orientation: Qt.Vertical
width: root.cappedWidth
Repeater {
@@ -54,6 +56,7 @@ orientation: Qt.Vertical
anchors.leftMargin: Tokens.padding.largeIncreased
anchors.margins: Tokens.padding.small
anchors.rightMargin: Tokens.padding.largeIncreased
spacing: Tokens.spacing.medium
IconImage {
@@ -63,8 +66,9 @@ orientation: Qt.Vertical
}
SnapLayout {
orientation: Qt.Vertical
Layout.fillWidth: true
orientation: Qt.Vertical
spacing: 0
CustomText {