Compare commits

...

2 commits

Author SHA1 Message Date
Damocles
d0f7c0872a fix hover glow: section glow covers whole module, children defer 2026-04-12 17:25:22 +02:00
Damocles
d8d602d30f tray: needs-attention glow and pulse 2026-04-12 17:23:35 +02:00
3 changed files with 25 additions and 3 deletions

View file

@ -15,7 +15,7 @@ Text {
font.family: M.Theme.iconFontFamily
verticalAlignment: Text.AlignVCenter
layer.enabled: _hovered
layer.enabled: _hovered && !(parent && parent._hovered === true)
layer.effect: MultiEffect {
shadowEnabled: true
shadowColor: M.Theme.base05

View file

@ -24,7 +24,7 @@ Text {
font.family: root.font.family
}
layer.enabled: _hovered
layer.enabled: _hovered && !(parent && parent._hovered === true)
layer.effect: MultiEffect {
shadowEnabled: true
shadowColor: M.Theme.base05

View file

@ -1,4 +1,5 @@
import QtQuick
import QtQuick.Effects
import QtQuick.Layouts
import Quickshell
import Quickshell.Services.SystemTray
@ -19,13 +20,34 @@ RowLayout {
id: iconItem
required property SystemTrayItem modelData
readonly property bool _needsAttention: modelData.status === SystemTrayItemStatus.NeedsAttention
property real _pulseOpacity: 1
implicitWidth: 18
implicitHeight: 18
SequentialAnimation {
running: iconItem._needsAttention
loops: Animation.Infinite
NumberAnimation { target: iconItem; property: "_pulseOpacity"; to: 0.3; duration: 400; easing.type: Easing.InOutQuad }
NumberAnimation { target: iconItem; property: "_pulseOpacity"; to: 1; duration: 400; easing.type: Easing.InOutQuad }
onRunningChanged: if (!running) iconItem._pulseOpacity = 1
}
M.ThemedIcon {
anchors.fill: parent
source: iconItem.modelData.icon
tint: M.Theme.base0D
tint: iconItem._needsAttention ? M.Theme.base08 : M.Theme.base0D
opacity: iconItem._pulseOpacity
layer.enabled: iconItem._needsAttention
layer.effect: MultiEffect {
shadowEnabled: true
shadowColor: M.Theme.base08
shadowBlur: 0.8
shadowVerticalOffset: 0
shadowHorizontalOffset: 0
}
}
HoverHandler {