diff options
author | Bastien Nocera <hadess@hadess.net> | 2022-06-23 14:27:06 +0200 |
---|---|---|
committer | Bastien Nocera <hadess@hadess.net> | 2022-06-29 14:20:51 +0200 |
commit | 0fc45eb2976d5f0ee3b71f65d4d64650ab60b10f (patch) | |
tree | 7877cbc5bebfc3597dbadd624404365394d616e8 | |
parent | 3ace233030d1d4140a114604b17b334ac211fd74 (diff) | |
download | gnome-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.c | 8 |
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); |