Compare commits

...

2 commits

Author SHA1 Message Date
Damocles
0eaba947f4 limit mpris label width to prevent overflow 2026-04-12 17:40:22 +02:00
Damocles
87be2c720a tray icons: hover glow 2026-04-12 17:38:05 +02:00
2 changed files with 7 additions and 3 deletions

View file

@ -32,6 +32,8 @@ M.BarSection {
M.BarLabel { M.BarLabel {
label: root.player?.trackTitle || root.player?.identity || "" label: root.player?.trackTitle || root.player?.identity || ""
color: M.Theme.base0E color: M.Theme.base0E
elide: Text.ElideRight
width: Math.min(implicitWidth, 200)
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
} }

View file

@ -21,6 +21,7 @@ RowLayout {
required property SystemTrayItem modelData required property SystemTrayItem modelData
readonly property bool _needsAttention: modelData.status === SystemTrayItemStatus.NeedsAttention readonly property bool _needsAttention: modelData.status === SystemTrayItemStatus.NeedsAttention
property bool _hovered: false
property real _pulseOpacity: 1 property real _pulseOpacity: 1
implicitWidth: 18 implicitWidth: 18
@ -38,11 +39,11 @@ RowLayout {
anchors.fill: parent anchors.fill: parent
opacity: iconItem._pulseOpacity opacity: iconItem._pulseOpacity
layer.enabled: iconItem._needsAttention layer.enabled: iconItem._needsAttention || iconItem._hovered
layer.effect: MultiEffect { layer.effect: MultiEffect {
shadowEnabled: true shadowEnabled: true
shadowColor: M.Theme.base08 shadowColor: iconItem._needsAttention ? M.Theme.base08 : M.Theme.base05
shadowBlur: 0.8 shadowBlur: iconItem._needsAttention ? 0.8 : 0.5
shadowVerticalOffset: 0 shadowVerticalOffset: 0
shadowHorizontalOffset: 0 shadowHorizontalOffset: 0
} }
@ -56,6 +57,7 @@ RowLayout {
HoverHandler { HoverHandler {
onHoveredChanged: { onHoveredChanged: {
iconItem._hovered = hovered;
const tip = [iconItem.modelData.tooltipTitle, iconItem.modelData.tooltipDescription].filter(s => s).join("\n") || iconItem.modelData.title; const tip = [iconItem.modelData.tooltipTitle, iconItem.modelData.tooltipDescription].filter(s => s).join("\n") || iconItem.modelData.title;
if (hovered && tip) { if (hovered && tip) {
M.FlyoutState.text = tip; M.FlyoutState.text = tip;