sidebar: fix widget destroyed error

This commit is contained in:
2 * r + 2 * t 2025-03-26 20:31:23 +11:00
parent 1afe054f7a
commit 28f94ec6a0
2 changed files with 12 additions and 1 deletions

View file

@ -46,6 +46,10 @@
padding: lib.s(3) lib.s(8);
&:disabled {
color: scheme.$overlay0;
}
&:hover,
&:focus {
color: scheme.$subtext0;

View file

@ -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;
}}