diff --git a/ks_includes/KlippyWebsocket.py b/ks_includes/KlippyWebsocket.py index 608660a9..588caac3 100644 --- a/ks_includes/KlippyWebsocket.py +++ b/ks_includes/KlippyWebsocket.py @@ -8,7 +8,7 @@ import websocket import logging gi.require_version("Gtk", "3.0") -from gi.repository import GLib, Gdk +from gi.repository import GLib from ks_includes.KlippyGcodes import KlippyGcodes api_key = "" @@ -126,24 +126,17 @@ class KlippyWebsocket(threading.Thread): def on_message(self, ws, message): response = json.loads(message) if "id" in response and response['id'] in self.callback_table: - Gdk.threads_add_idle( - GLib.PRIORITY_HIGH_IDLE, - self.callback_table[response['id']][0], - response, - self.callback_table[response['id']][1], - self.callback_table[response['id']][2], - *self.callback_table[response['id']][3] - ) + args = (response, + self.callback_table[response['id']][1], + self.callback_table[response['id']][2], + *self.callback_table[response['id']][3]) + GLib.idle_add(self.callback_table[response['id']][0], *args) self.callback_table.pop(response['id']) return if "method" in response and "on_message" in self._callback: - Gdk.threads_add_idle( - GLib.PRIORITY_HIGH_IDLE, - self._callback['on_message'], - response['method'], - response['params'][0] if "params" in response else {} - ) + args = response['method'], response['params'][0] if "params" in response else {} + GLib.idle_add(self._callback['on_message'], *args) return def send_method(self, method, params=None, callback=None, *args): @@ -171,10 +164,7 @@ class KlippyWebsocket(threading.Thread): self.connected = True self.reconnect_count = 0 if "on_connect" in self._callback: - Gdk.threads_add_idle( - GLib.PRIORITY_HIGH_IDLE, - self._callback['on_connect'] - ) + GLib.idle_add(self._callback['on_connect']) def on_close(self, ws): if self.is_connected() is False: @@ -192,11 +182,7 @@ class KlippyWebsocket(threading.Thread): self.connected = False if "on_close" in self._callback: - Gdk.threads_add_idle( - GLib.PRIORITY_HIGH_IDLE, - self._callback['on_close'], - "Lost Connection to Moonraker", - ) + GLib.idle_add(self._callback['on_close'], "Lost Connection to Moonraker") self.retry() def reconnect(self): diff --git a/ks_includes/files.py b/ks_includes/files.py index 990b0bd7..7f020079 100644 --- a/ks_includes/files.py +++ b/ks_includes/files.py @@ -95,7 +95,8 @@ class KlippyFiles: if filename in self.filelist: logging.info(f"File already exists: {filename}") self.request_metadata(filename) - GLib.timeout_add_seconds(1, self.run_callbacks, mods=[filename]) + args = None, None, [filename] + GLib.idle_add(self.run_callbacks, *args) return self.filelist.append(filename) @@ -185,7 +186,8 @@ class KlippyFiles: if len(self.callbacks) <= 0: return False for cb in self.callbacks: - GLib.idle_add(cb, newfiles, deletedfiles, mods) + args = newfiles, deletedfiles, mods + GLib.idle_add(cb, *args) return False def get_file_list(self): diff --git a/ks_includes/printer.py b/ks_includes/printer.py index e7ebf92e..b0b52e3e 100644 --- a/ks_includes/printer.py +++ b/ks_includes/printer.py @@ -147,11 +147,7 @@ class Printer: self.state = state if self.state_callbacks[state] is not None: logging.debug(f"Adding callback for state: {state}") - Gdk.threads_add_idle( - GLib.PRIORITY_HIGH_IDLE, - self.state_cb, - self.state_callbacks[state] - ) + GLib.idle_add(self.state_cb, self.state_callbacks[state]) def configure_power_devices(self, data): self.power_devices = {} diff --git a/ks_includes/wifi.py b/ks_includes/wifi.py index f3dadf2e..623166a6 100644 --- a/ks_includes/wifi.py +++ b/ks_includes/wifi.py @@ -11,7 +11,7 @@ from queue import Queue import gi gi.require_version("Gtk", "3.0") -from gi.repository import GLib, Gdk +from gi.repository import GLib class WifiManager: @@ -103,10 +103,7 @@ class WifiManager: def callback(self, cb_type, msg): if cb_type in self._callbacks: for cb in self._callbacks[cb_type]: - Gdk.threads_add_idle( - GLib.PRIORITY_DEFAULT_IDLE, - cb, - msg) + GLib.idle_add(cb, msg) def connect(self, ssid): netid = None @@ -164,9 +161,8 @@ class WifiManager: self.networks[ssid]['connected'] = ssid == con_ssid if prev_ssid != self.connected_ssid: for cb in self._callbacks['connected']: - Gdk.threads_add_idle( - GLib.PRIORITY_DEFAULT_IDLE, - cb, self.connected_ssid, prev_ssid) + args = self.connected_ssid, prev_ssid + GLib.idle_add(cb, *args) return [con_ssid, con_bssid] elif "ssid" in variables and "bssid" in variables: self.connected = True @@ -175,9 +171,8 @@ class WifiManager: self.networks[ssid]['connected'] = ssid == variables['ssid'] if prev_ssid != self.connected_ssid: for cb in self._callbacks['connected']: - Gdk.threads_add_idle( - GLib.PRIORITY_DEFAULT_IDLE, - cb, self.connected_ssid, prev_ssid) + args = self.connected_ssid, prev_ssid + GLib.idle_add(cb, *args) return [variables['ssid'], variables['bssid']] else: logging.info("Resetting connected_ssid") @@ -187,9 +182,8 @@ class WifiManager: self.networks[ssid]['connected'] = False if prev_ssid != self.connected_ssid: for cb in self._callbacks['connected']: - Gdk.threads_add_idle( - GLib.PRIORITY_DEFAULT_IDLE, - cb, self.connected_ssid, prev_ssid) + args = self.connected_ssid, prev_ssid + GLib.idle_add(cb, *args) return None def get_current_wifi_idle_add(self): @@ -289,9 +283,8 @@ class WifiManager: new_networks.append(net) if new_networks or deleted_networks: for cb in self._callbacks['scan_results']: - Gdk.threads_add_idle( - GLib.PRIORITY_DEFAULT_IDLE, - cb, new_networks, deleted_networks) + args = new_networks, deleted_networks + GLib.idle_add(cb, *args) def wpa_cli(self, command, wait=True): if wait is False: @@ -326,7 +319,7 @@ class WpaSocket(Thread): continue if msg.startswith("<"): if "CTRL-EVENT-SCAN-RESULTS" in msg: - Gdk.threads_add_idle(GLib.PRIORITY_DEFAULT_IDLE, self.wm.scan_results) + GLib.idle_add(self.wm.scan_results) elif "CTRL-EVENT-DISCONNECTED" in msg: self.callback("connecting_status", msg) match = re.match('<3>CTRL-EVENT-DISCONNECTED bssid=(\\S+) reason=3 locally_generated=1', msg) @@ -338,7 +331,7 @@ class WpaSocket(Thread): elif "Trying to associate" in msg or "CTRL-EVENT-REGDOM-CHANGE" in msg: self.callback("connecting_status", msg) elif "CTRL-EVENT-CONNECTED" in msg: - Gdk.threads_add_idle(GLib.PRIORITY_DEFAULT_IDLE, self.wm.get_current_wifi_idle_add) + GLib.idle_add(self.wm.get_current_wifi_idle_add) self.callback("connecting_status", msg) elif self.skip_commands > 0: self.skip_commands = self.skip_commands - 1