From 661d477e7806d322d3499c19537541c5dd4e7d82 Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Tue, 15 Sep 2026 12:29:42 +0200 Subject: fix(status): address final review findings F1: after a click the shared Switch writes checked directly, dropping StatusRow's declarative binding, so an external mode change from waybar or statusctl no longer moved the switch. Resync via onValueChanged. F2: the spec claimed hyprctl clients counts idle inhibitors, which is false for a layer-surface inhibitor; replace with the behavioral hypridle marker check. F3: README said the check covers both watch states; it exercises the activated report and the absent-file down report. F4: give breakProc an onExited check so a failed breaktimer.sh verb is visible instead of silent. F5: drop StatusTile's unused required st property and its injection. F6: comment the startup-order limit on dndBeforePresentation. --- desktop/modules/status/README.md | 2 +- desktop/modules/status/StatusModule.qml | 2 +- desktop/modules/status/StatusRow.qml | 5 +++++ desktop/modules/status/StatusTile.qml | 4 ---- 4 files changed, 7 insertions(+), 6 deletions(-) (limited to 'desktop/modules/status') diff --git a/desktop/modules/status/README.md b/desktop/modules/status/README.md index 0bb376f..84736d5 100644 --- a/desktop/modules/status/README.md +++ b/desktop/modules/status/README.md @@ -56,4 +56,4 @@ before the screen could lock. Points `XDG_RUNTIME_DIR` at a temporary directory, so it never touches live modes. Covers the file format, the atomic write, the toggle, the unknown-mode -error and both watch states. +error, both the activated report and the absent-file down report. diff --git a/desktop/modules/status/StatusModule.qml b/desktop/modules/status/StatusModule.qml index c36d9d0..30f8557 100644 --- a/desktop/modules/status/StatusModule.qml +++ b/desktop/modules/status/StatusModule.qml @@ -28,7 +28,7 @@ Module { // The tile renders in its accent while any mode is on. active: Status.activeCount > 0 - tileContent: Component { StatusTile { st: mod } } + tileContent: Component { StatusTile {} } page: Component { Page { diff --git a/desktop/modules/status/StatusRow.qml b/desktop/modules/status/StatusRow.qml index c342e2b..c9e78c0 100644 --- a/desktop/modules/status/StatusRow.qml +++ b/desktop/modules/status/StatusRow.qml @@ -53,4 +53,9 @@ Item { checked: row.value onToggled: Status.toggleMode(row.mode) } + + // The shared Switch's click handler writes `checked` directly, which drops + // the declarative binding above. Resync on any value change so an external + // write (statusctl, waybar) moves the switch back into agreement. + onValueChanged: sw.checked = row.value } diff --git a/desktop/modules/status/StatusTile.qml b/desktop/modules/status/StatusTile.qml index 9bc6f04..c4b87d4 100644 --- a/desktop/modules/status/StatusTile.qml +++ b/desktop/modules/status/StatusTile.qml @@ -12,11 +12,7 @@ import QtQuick import "../.." -// Injected as st, never mod: a property named the same as the enclosing -// object's id binds to itself and arrives undefined. See AGENTS.md. Text { - required property var st - width: parent ? parent.width : implicitWidth elide: Text.ElideRight font { family: Theme.fontFamily; pixelSize: Theme.fontSize - 4 } -- cgit v1.2.3