Merge pull request #3362 from lukasfink1/bt-dyn-controller-pr
Fix device list not being updated on selecting new bluetooth controller
This commit is contained in:
commit
9ba5825009
|
@ -301,16 +301,25 @@ auto waybar::modules::Bluetooth::onObjectAdded(GDBusObjectManager* manager,
|
||||||
auto waybar::modules::Bluetooth::onObjectRemoved(GDBusObjectManager* manager,
|
auto waybar::modules::Bluetooth::onObjectRemoved(GDBusObjectManager* manager,
|
||||||
GDBusObject* object,
|
GDBusObject* object,
|
||||||
gpointer user_data) -> void {
|
gpointer user_data) -> void {
|
||||||
GDBusProxy* proxy_controller =
|
Bluetooth* bt = static_cast<Bluetooth*>(user_data);
|
||||||
G_DBUS_PROXY(g_dbus_object_get_interface(object, "org.bluez.Adapter1"));
|
GDBusProxy* proxy_controller;
|
||||||
|
|
||||||
|
if (!bt->cur_controller_.has_value()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
proxy_controller = G_DBUS_PROXY(g_dbus_object_get_interface(object, "org.bluez.Adapter1"));
|
||||||
|
|
||||||
if (proxy_controller != NULL) {
|
if (proxy_controller != NULL) {
|
||||||
|
|
||||||
std::string object_path = g_dbus_object_get_object_path(object);
|
std::string object_path = g_dbus_object_get_object_path(object);
|
||||||
Bluetooth* bt = static_cast<Bluetooth*>(user_data);
|
|
||||||
|
|
||||||
if (object_path == bt->cur_controller_->path) {
|
if (object_path == bt->cur_controller_->path) {
|
||||||
bt->cur_controller_ = bt->findCurController();
|
bt->cur_controller_ = bt->findCurController();
|
||||||
|
if (bt->cur_controller_.has_value()) {
|
||||||
|
bt->connected_devices_.clear();
|
||||||
|
bt->findConnectedDevices(bt->cur_controller_->path, bt->connected_devices_);
|
||||||
|
}
|
||||||
bt->dp.emit();
|
bt->dp.emit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue