From 434efd32701399ee1e74d91f23c54463460f05ce Mon Sep 17 00:00:00 2001
From: 2 * r + 2 * t <61896496+soramanew@users.noreply.github.com>
Date: Wed, 15 Jan 2025 22:02:01 +1100
Subject: bar: fix bluetooth tooltip

---
 modules/bar.tsx | 11 +++++++----
 1 file changed, 7 insertions(+), 4 deletions(-)

(limited to 'modules/bar.tsx')

diff --git a/modules/bar.tsx b/modules/bar.tsx
index 6821b94..9374b51 100644
--- a/modules/bar.tsx
+++ b/modules/bar.tsx
@@ -309,18 +309,21 @@ const Bluetooth = () => (
                 execAsync("uwsm app -- blueman-manager").catch(console.error);
         }}
         setup={self => {
+            const bluetooth = AstalBluetooth.get_default();
             const tooltipText = Variable("");
             const update = () => {
-                const devices = AstalBluetooth.get_default()
-                    .get_devices()
-                    .filter(d => d.connected);
+                const devices = bluetooth.get_devices().filter(d => d.connected);
                 tooltipText.set(
                     devices.length > 0
                         ? `Connected devices: ${devices.map(d => d.alias).join(", ")}`
                         : "No connected devices"
                 );
             };
-            self.hook(AstalBluetooth.get_default(), "notify", update); // TODO: fix not updating
+            bluetooth.get_devices().forEach(d => self.hook(d, "notify::connected", update));
+            self.hook(bluetooth, "device-added", (_, device) => {
+                self.hook(device, "notify::connected", update);
+                update();
+            });
             update();
             setupCustomTooltip(self, bind(tooltipText));
         }}
-- 
cgit v1.2.3-freya

