Fix RuntimeError: schedule async updates through root.after() to ensure event loop is running
This commit is contained in:
25
src/main.py
25
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:
|
||||
|
||||
Reference in New Issue
Block a user