]> gitweb.michael.orlitzky.com - xfce4-hdaps.git/commitdiff
Prevented duplicate entries in the device name combo box.
authorMichael Orlitzky <michael@orlitzky.com>
Thu, 12 Feb 2009 04:40:40 +0000 (23:40 -0500)
committerMichael Orlitzky <michael@orlitzky.com>
Thu, 12 Feb 2009 04:40:40 +0000 (23:40 -0500)
panel-plugin/xfce4-hdaps-dialogs.c

index 5f2e87711ddf2ffb08d9943f660fe38af678a20e..046beac60daeaa2857a77d4a611ba0cc8a256c73 100644 (file)
@@ -153,6 +153,7 @@ void hdaps_configure(XfcePanelPlugin *plugin,
   gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
 
   hdaps->cb_device_name = gtk_combo_box_new_text();
+
   /* Add the current device name, it should always be available.
      Oh, and it should be the default, too. */
   gtk_combo_box_append_text((GtkComboBox*)hdaps->cb_device_name, hdaps->device_name);
@@ -162,14 +163,19 @@ void hdaps_configure(XfcePanelPlugin *plugin,
   gtk_combo_box_set_active((GtkComboBox*)hdaps->cb_device_name, 0);
   
   /* Now loop through the list of available devices, adding each
-     to the list as we go. I believe GTK takes care of the duplicates
-     for us. */
+     to the list as we go. */
   char hdaps_devices[MAX_HDAPS_DEVICES][FILENAME_MAX];
   int found_devices = get_hdaps_device_list(hdaps_devices);
   int list_idx = 0;
   
   for (list_idx = 0; list_idx < found_devices; list_idx++) {
-    gtk_combo_box_append_text((GtkComboBox*)hdaps->cb_device_name, hdaps_devices[list_idx]);
+    /* We don't want to add duplicate entries to the combo box.
+       However, at this point, the current device name should be
+       the only entry. Therefore, to avoid duplicates, we only
+       have to avoid adding the current device name a second time. */
+    if (strcmp(hdaps_devices[list_idx], hdaps->device_name) != 0) {
+      gtk_combo_box_append_text((GtkComboBox*)hdaps->cb_device_name, hdaps_devices[list_idx]);
+    }
   }
   
   gtk_box_pack_start(GTK_BOX(hbox), hdaps->cb_device_name, FALSE, FALSE, 0);