diff --git a/src/main.py b/src/main.py index 8651e25..4db57eb 100644 --- a/src/main.py +++ b/src/main.py @@ -694,13 +694,16 @@ class App: if self.pending_rgb_update_id: self.root.after_cancel(self.pending_rgb_update_id) self.pending_rgb_update_id = None - self.update_rgb(tab) + # Use root.after() to ensure the async event loop is running + # A delay of 0 will execute on the next event loop iteration + self.root.after(0, lambda: self.update_rgb(tab)) self.last_rgb_update_time = current_time elif current_time - self.last_rgb_update_time >= self.rgb_update_interval_ms: if self.pending_rgb_update_id: self.root.after_cancel(self.pending_rgb_update_id) self.pending_rgb_update_id = None - self.update_rgb(tab) + # Use root.after() to ensure the async event loop is running + self.root.after(0, lambda: self.update_rgb(tab)) self.last_rgb_update_time = current_time else: if self.pending_rgb_update_id: @@ -714,13 +717,15 @@ class App: if self.pending_brightness_update_id: self.root.after_cancel(self.pending_brightness_update_id) self.pending_brightness_update_id = None - self.update_brightness(tab) + # Use root.after() to ensure the async event loop is running + self.root.after(0, lambda: self.update_brightness(tab)) self.last_brightness_update_time = current_time elif current_time - self.last_brightness_update_time >= self.brightness_update_interval_ms: if self.pending_brightness_update_id: self.root.after_cancel(self.pending_brightness_update_id) self.pending_brightness_update_id = None - self.update_brightness(tab) + # Use root.after() to ensure the async event loop is running + self.root.after(0, lambda: self.update_brightness(tab)) self.last_brightness_update_time = current_time else: if self.pending_brightness_update_id: @@ -734,13 +739,15 @@ class App: if self.pending_delay_update_id: self.root.after_cancel(self.pending_delay_update_id) self.pending_delay_update_id = None - self.update_delay(tab) + # Use root.after() to ensure the async event loop is running + self.root.after(0, lambda: self.update_delay(tab)) self.last_delay_update_time = current_time elif current_time - self.last_delay_update_time >= self.delay_update_interval_ms: if self.pending_delay_update_id: self.root.after_cancel(self.pending_delay_update_id) self.pending_delay_update_id = None - self.update_delay(tab) + # Use root.after() to ensure the async event loop is running + self.root.after(0, lambda: self.update_delay(tab)) self.last_delay_update_time = current_time else: if self.pending_delay_update_id: @@ -754,13 +761,15 @@ class App: if self.pending_n_params_update_id: self.root.after_cancel(self.pending_n_params_update_id) self.pending_n_params_update_id = None - self.update_n_params(tab) + # Use root.after() to ensure the async event loop is running + self.root.after(0, lambda: self.update_n_params(tab)) self.last_n_params_update_time = current_time elif current_time - self.last_n_params_update_time >= self.n_params_update_interval_ms: if self.pending_n_params_update_id: self.root.after_cancel(self.pending_n_params_update_id) self.pending_n_params_update_id = None - self.update_n_params(tab) + # Use root.after() to ensure the async event loop is running + self.root.after(0, lambda: self.update_n_params(tab)) self.last_n_params_update_time = current_time else: if self.pending_n_params_update_id: