load higher resolution tray icons for high-dpi screens

This commit is contained in:
2026-05-27 11:43:42 +02:00
parent bd576e17dc
commit 3963a48a9d
3 changed files with 35 additions and 20 deletions
+3 -4
View File
@@ -44,11 +44,11 @@ Item {
Loader {
id: icon
active: Qt.binding(() => root.shouldBeActive || root.visible)
active: root.shouldBeActive || root.visible
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
asynchronous: true
height: content.contentItem.height
height: content.item.height
opacity: root.expanded ? 0 : 1
Behavior on opacity {
@@ -64,6 +64,7 @@ Item {
Loader {
id: content
active: root.shouldBeActive || root.visible
anchors.right: parent.right
anchors.verticalCenter: parent.verticalCenter
asynchronous: true
@@ -77,7 +78,5 @@ Item {
drawing: root.drawing
visibilities: root.visibilities
}
Component.onCompleted: active = Qt.binding(() => root.shouldBeActive || root.visible)
}
}
+5 -1
View File
@@ -3,6 +3,7 @@ import QtQuick
import QtQuick.VectorImage
import Quickshell
import Quickshell.Services.SystemTray
import qs.Helpers
import qs.Modules
import qs.Components
import qs.Config
@@ -11,6 +12,7 @@ Item {
id: root
property bool current: popouts.currentName.startsWith(`traymenu${ind}`) && popouts.hasCurrent
readonly property real dpr: Hypr.monitorFor(loader.screen).scale
property bool hasLoaded: false
required property int ind
required property SystemTrayItem item
@@ -48,9 +50,11 @@ Item {
id: icon
anchors.centerIn: parent
antialiasing: true
color: root.current ? DynamicColors.palette.m3onPrimary : DynamicColors.palette.m3onSurface
implicitSize: 22
implicitSize: 24 * root.dpr
layer.enabled: Config.general.color.smart || Config.general.color.scheduleDark
scale: 1 / root.dpr
source: root.item.icon
}
}