From d2bacffff0e9b9508d46c9fa09ca74b4705f24ca Mon Sep 17 00:00:00 2001 From: trigg Date: Sun, 14 Apr 2024 20:23:03 +0100 Subject: [PATCH] - Fix a settings crash where user has no monitors for a moment - Fix audio assist going out of sync with discord state - Fixes #330 --- discover_overlay/audio_assist.py | 10 ++++++---- discover_overlay/settings_window.py | 10 ++++++---- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/discover_overlay/audio_assist.py b/discover_overlay/audio_assist.py index ec13293..d007944 100644 --- a/discover_overlay/audio_assist.py +++ b/discover_overlay/audio_assist.py @@ -92,6 +92,12 @@ class DiscoverAudioAssist: elif sink.mute == 0: deaf = False + if deaf != self.last_set_deaf: + self.last_set_deaf = deaf + self.discover.set_deaf_async(deaf) + self.last_set_mute = None + # At this point mute is undefined state + for source in await pulse.source_list(): if source.description == self.source: if source.mute == 1 or source.volume.values[0] == 0.0: @@ -103,10 +109,6 @@ class DiscoverAudioAssist: self.last_set_mute = mute self.discover.set_mute_async(mute) - if deaf != self.last_set_deaf: - self.last_set_deaf = deaf - self.discover.set_deaf_async(deaf) - async def print_events(self, pulse, ev): if not self.enabled: return diff --git a/discover_overlay/settings_window.py b/discover_overlay/settings_window.py index 89abb45..d26e43f 100644 --- a/discover_overlay/settings_window.py +++ b/discover_overlay/settings_window.py @@ -340,10 +340,12 @@ class MainSettingsWindow(): display = Gdk.Display.get_default() if "get_n_monitors" in dir(display): - for i in range(0, display.get_n_monitors()): - v.append_text(display.get_monitor(i).get_model()) - t.append_text(display.get_monitor(i).get_model()) - m.append_text(display.get_monitor(i).get_model()) + count_monitors = display.get_n_monitors() + if count_monitors: + for i in range(0, count_monitors): + v.append_text(display.get_monitor(i).get_model()) + t.append_text(display.get_monitor(i).get_model()) + m.append_text(display.get_monitor(i).get_model()) v.set_active(v_value) t.set_active(t_value)