diff options
| author | Danilo M. <danix@danix.xyz> | 2026-10-07 19:06:02 +0200 |
|---|---|---|
| committer | Danilo M. <danix@danix.xyz> | 2026-10-07 19:06:02 +0200 |
| commit | 04fdf9ca7980b594ea674d8755b730569a550d26 (patch) | |
| tree | 6ca0230175029c3465b1c46ddc9ede90f71a782e /desktop/island | |
| parent | f54639e3bee6803fc884135783c0633318a161a2 (diff) | |
| download | quickshell-04fdf9ca7980b594ea674d8755b730569a550d26.tar.gz quickshell-04fdf9ca7980b594ea674d8755b730569a550d26.zip | |
fix(island): neutral idle sliver, flag scroll via MouseArea
The sliver was the accent at rest, and udt had snapped the accent to the
same colour as the mic indicator (#36d190), so an idle sliver read as a
live microphone. It is Theme.overlay at rest now; captures keep their
colours whatever the wallpaper does.
The flag's WheelHandler never fired. MouseArea.onWheel, which SoundPage
already uses, does; scroll now switches layout, one step per notch.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'desktop/island')
| -rw-r--r-- | desktop/island/Island.qml | 8 | ||||
| -rw-r--r-- | desktop/island/StatusPill.qml | 17 |
2 files changed, 16 insertions, 9 deletions
diff --git a/desktop/island/Island.qml b/desktop/island/Island.qml index b471e3c..0cb3c10 100644 --- a/desktop/island/Island.qml +++ b/desktop/island/Island.qml @@ -146,8 +146,10 @@ PanelWindow { Region { item: status; intersection: Intersection.Combine } } - // The visible sliver: accent at rest, the capture colours while - // something captures, one equal segment per active kind. + // The visible sliver: neutral at rest, the capture colours while + // something captures, one equal segment per active kind. Not the accent + // at rest: udt snaps the accent to a palette colour, and when it lands on + // green an idle sliver read exactly like a live microphone. Row { id: sliver x: win.cx - width / 2 @@ -156,7 +158,7 @@ PanelWindow { height: 4 Repeater { - model: Privacy.roles.length ? Privacy.roles : ["accent"] + model: Privacy.roles.length ? Privacy.roles : ["overlay"] delegate: Rectangle { required property string modelData width: sliver.width / Math.max(1, Privacy.roles.length) diff --git a/desktop/island/StatusPill.qml b/desktop/island/StatusPill.qml index 344117c..5ab8f95 100644 --- a/desktop/island/StatusPill.qml +++ b/desktop/island/StatusPill.qml @@ -93,13 +93,18 @@ Capsule { // One switch per wheel notch (120). A touchpad sends many small // deltas, and switching on each made the count erratic. - WheelHandler { + // A MouseArea, not a WheelHandler: the handler never fired here, + // while MouseArea.onWheel is what SoundPage already relies on. + MouseArea { + anchors.fill: parent property real acc: 0 - onWheel: event => { - acc += event.angleDelta.y; - if (Math.abs(acc) < 120) return; - Keyboard.cycle(acc > 0 ? "prev" : "next"); - acc = 0; + onWheel: wheel => { + acc += wheel.angleDelta.y; + if (Math.abs(acc) >= 120) { + Keyboard.cycle(acc > 0 ? "prev" : "next"); + acc = 0; + } + wheel.accepted = true; } } } |
