]> git.0d.be Git - empathy.git/commitdiff
do not add blank when popup showing; add blank when popup becomes hidden and nothing...
authorXavier Claessens <xclaesse@src.gnome.org>
Fri, 30 Jan 2009 17:33:39 +0000 (17:33 +0000)
committerXavier Claessens <xclaesse@src.gnome.org>
Fri, 30 Jan 2009 17:33:39 +0000 (17:33 +0000)
svn path=/trunk/; revision=2314

libempathy-gtk/empathy-contact-selector.c

index 0b95b22b0ba3acadb7cbeb992623f7a8396f0a4a..3de39bef8293b2c9a21bba218ba6df1790cd9648 100644 (file)
@@ -105,13 +105,23 @@ notify_popup_shown_cb (GtkComboBox *widget,
 
   g_object_get (widget, property->name, &shown, NULL);
 
-  if (!shown)
-    return;
-
-  if (get_iter_for_contact (priv->list_store, &blank_iter, NULL))
+  if (shown)
+    {
+      if (get_iter_for_contact (priv->list_store, &blank_iter, NULL))
+        {
+          gtk_list_store_remove (priv->list_store, &blank_iter);
+          priv->is_blank_set = FALSE;
+        }
+    }
+  else
     {
-      gtk_list_store_remove (priv->list_store, &blank_iter);
-      priv->is_blank_set = FALSE;
+      if (gtk_combo_box_get_active (widget) == -1)
+        {
+          set_blank_contact (selector);
+          if (gtk_tree_model_iter_n_children (GTK_TREE_MODEL (priv->list_store),
+              NULL) == 1)
+          gtk_widget_set_sensitive (GTK_WIDGET (selector), FALSE);
+        }
     }
 }
 
@@ -123,6 +133,12 @@ changed_cb (GtkComboBox *widget,
   EmpathyContactSelector *selector = EMPATHY_CONTACT_SELECTOR (widget);
   EmpathyContactSelectorPriv *priv = GET_PRIV (selector);
   GtkTreeIter blank_iter;
+  gboolean shown;
+
+  g_object_get (widget, "popup-shown", &shown, NULL);
+
+  if (shown)
+    return;
 
   if (gtk_combo_box_get_active (widget) == -1)
     {