From 8798809231f386de9bdd877246371a907bdf766f Mon Sep 17 00:00:00 2001 From: "Danilo M." Date: Fri, 30 Oct 2026 20:50:48 +0100 Subject: monitors: keep unsaved edits across another page's reload Any configreloaded reread the draft, so saving on the Options or Keyboard shortcuts page silently dropped unsaved monitor edits. The handler now goes through refresh(), which skips a dirty draft, and revert() returns the draft to orig itself so its own reload still rereads. The spec now says one eval per monitor and the reload after a refusal, as built. Co-Authored-By: Claude Opus 5.5 --- desktop/modules/monitors/MonitorsModule.qml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) (limited to 'desktop/modules') diff --git a/desktop/modules/monitors/MonitorsModule.qml b/desktop/modules/monitors/MonitorsModule.qml index 94ec8e4..3fdef48 100644 --- a/desktop/modules/monitors/MonitorsModule.qml +++ b/desktop/modules/monitors/MonitorsModule.qml @@ -75,7 +75,8 @@ Module { function onRawEvent(event) { if (event.name !== "configreloaded" || mm.pending) return; if (mm.skipRead) { mm.skipRead = false; return; } - mm.read(); + // Not over unsaved edits: another page's save reloads too. + mm.refresh(); } } @@ -134,6 +135,8 @@ Module { function revert() { tick.stop(); mm.pending = false; + // What the reload restores, so the reread it triggers is not held back. + mm.draft = JSON.parse(JSON.stringify(mm.orig)); Quickshell.execDetached(["hyprctl", "reload"]); } -- cgit v1.2.3