diff options
| -rw-r--r-- | scss/sidebar.scss | 4 | ||||
| -rw-r--r-- | src/modules/sidebar/modules/networks.tsx | 9 |
2 files changed, 12 insertions, 1 deletions
diff --git a/scss/sidebar.scss b/scss/sidebar.scss index 404df51..f485264 100644 --- a/scss/sidebar.scss +++ b/scss/sidebar.scss @@ -46,6 +46,10 @@ padding: lib.s(3) lib.s(8); + &:disabled { + color: scheme.$overlay0; + } + &:hover, &:focus { color: scheme.$subtext0; 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; }} |