diff options
| author | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-03-26 20:31:23 +1100 |
|---|---|---|
| committer | 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com> | 2025-03-26 20:31:23 +1100 |
| commit | 28f94ec6a0e473eb3f692e4e1085633544766217 (patch) | |
| tree | 9f01f9171bbc13c31ee14fb664d33aafdfd7383e /src | |
| parent | sidebar: style disabled state for buttons (diff) | |
| download | caelestia-shell-28f94ec6a0e473eb3f692e4e1085633544766217.tar.gz caelestia-shell-28f94ec6a0e473eb3f692e4e1085633544766217.tar.bz2 caelestia-shell-28f94ec6a0e473eb3f692e4e1085633544766217.zip | |
sidebar: fix widget destroyed error
Diffstat (limited to 'src')
| -rw-r--r-- | src/modules/sidebar/modules/networks.tsx | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/modules/sidebar/modules/networks.tsx b/src/modules/sidebar/modules/networks.tsx index 3d9f66d..a28a8fc 100644 --- a/src/modules/sidebar/modules/networks.tsx +++ b/src/modules/sidebar/modules/networks.tsx @@ -44,10 +44,17 @@ const Network = (accessPoint: AstalNetwork.AccessPoint) => ( valign={Gtk.Align.CENTER} cursor="pointer" onClicked={self => { + let destroyed = false; + const id = self.connect("destroy", () => (destroyed = true)); const cmd = AstalNetwork.get_default().wifi.activeAccessPoint === accessPoint ? "c down id" : "d wifi connect"; execAsync(`nmcli ${cmd} '${accessPoint.ssid}'`) - .then(() => (self.sensitive = true)) + .then(() => { + if (!destroyed) { + self.sensitive = true; + self.disconnect(id); + } + }) .catch(console.error); self.sensitive = false; }} |