From a0755e06f9e5ce4670e944ec9e061036fade2644 Mon Sep 17 00:00:00 2001 From: Tim Mahon Date: Thu, 23 Apr 2026 00:07:06 +1000 Subject: [PATCH] fix(backlight): recreate FileMonitor after close FileMonitor is single-use; cancel() in close() leaves it dead, so the slider stopped updating on reopen. Null it in close() and re-create lazily in connect_monitor(). Fixes #728 --- .../widgets/backlight/backlightUtil.vala | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/src/controlCenter/widgets/backlight/backlightUtil.vala b/src/controlCenter/widgets/backlight/backlightUtil.vala index 9002d0da..0653786f 100644 --- a/src/controlCenter/widgets/backlight/backlightUtil.vala +++ b/src/controlCenter/widgets/backlight/backlightUtil.vala @@ -66,17 +66,24 @@ namespace SwayNotificationCenter.Widgets { } private void connect_monitor () { - if (monitor != null) { - // connect monitor to monitor changes - monitor.changed.connect ((src, dest, event) => { - get_brightness (); - }); + if (monitor == null) { + try { + monitor = fd.monitor (FileMonitorFlags.NONE, null); + } catch (Error e) { + critical ("Error %s\n", e.message); + return; + } } + // connect monitor to monitor changes + monitor.changed.connect ((src, dest, event) => { + get_brightness (); + }); } public void close () { if (monitor != null) { monitor.cancel (); + monitor = null; } }