summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Nocera <hadess@hadess.net>2022-06-23 14:27:06 +0200
committerBastien Nocera <hadess@hadess.net>2022-06-29 14:20:51 +0200
commit0fc45eb2976d5f0ee3b71f65d4d64650ab60b10f (patch)
tree7877cbc5bebfc3597dbadd624404365394d616e8
parent3ace233030d1d4140a114604b17b334ac211fd74 (diff)
downloadgnome-bluetooth-0fc45eb2976d5f0ee3b71f65d4d64650ab60b10f.tar.gz
settings-widget: Fix duplicate device when bluetoothd restarts
As recommended in the BluetoothClient documentation: " Note that #BluetoothClient::device-removed will not be called for each individual device as the model is cleared when the #BluetoothClient:default-adapter property changes. " Closes: #116
-rw-r--r--lib/bluetooth-settings-widget.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/bluetooth-settings-widget.c b/lib/bluetooth-settings-widget.c
index 3fd3b251..462f65bc 100644
--- a/lib/bluetooth-settings-widget.c
+++ b/lib/bluetooth-settings-widget.c
@@ -1341,6 +1341,14 @@ default_adapter_changed (BluetoothClient *client,
g_debug ("Default adapter changed to: %s", default_adapter ? default_adapter : "(none)");
+ if (default_adapter == NULL && self->device_list != NULL) {
+ GtkWidget *child;
+
+ g_debug ("Emptying list box as default adapter removed");
+ while ((child = gtk_widget_get_first_child (self->device_list)))
+ gtk_list_box_remove (GTK_LIST_BOX (self->device_list), child);
+ }
+
g_object_set (G_OBJECT (client), "default-adapter-setup-mode", default_adapter != NULL, NULL);
g_signal_emit (G_OBJECT (self), signals[ADAPTER_STATUS_CHANGED], 0);