aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk/empathy-contact-selector.c
diff options
context:
space:
mode:
authorXavier Claessens <xclaesse@src.gnome.org>2009-01-31 01:33:39 +0800
committerXavier Claessens <xclaesse@src.gnome.org>2009-01-31 01:33:39 +0800
commitc6a2ec5e82e66e3a515df39f68ae9179bbc69424 (patch)
tree23bc1fe8b72f259b2993da8c9518a0fc811b25fc /libempathy-gtk/empathy-contact-selector.c
parentc5a19e46a9fb24463d72c2dc5ea52335156b1a07 (diff)
downloadgsoc2013-empathy-c6a2ec5e82e66e3a515df39f68ae9179bbc69424.tar
gsoc2013-empathy-c6a2ec5e82e66e3a515df39f68ae9179bbc69424.tar.gz
gsoc2013-empathy-c6a2ec5e82e66e3a515df39f68ae9179bbc69424.tar.bz2
gsoc2013-empathy-c6a2ec5e82e66e3a515df39f68ae9179bbc69424.tar.lz
gsoc2013-empathy-c6a2ec5e82e66e3a515df39f68ae9179bbc69424.tar.xz
gsoc2013-empathy-c6a2ec5e82e66e3a515df39f68ae9179bbc69424.tar.zst
gsoc2013-empathy-c6a2ec5e82e66e3a515df39f68ae9179bbc69424.zip
do not add blank when popup showing; add blank when popup becomes hidden and nothing active
svn path=/trunk/; revision=2314
Diffstat (limited to 'libempathy-gtk/empathy-contact-selector.c')
-rw-r--r--libempathy-gtk/empathy-contact-selector.c28
1 files changed, 22 insertions, 6 deletions
diff --git a/libempathy-gtk/empathy-contact-selector.c b/libempathy-gtk/empathy-contact-selector.c
index 0b95b22b0..3de39bef8 100644
--- a/libempathy-gtk/empathy-contact-selector.c
+++ b/libempathy-gtk/empathy-contact-selector.c
@@ -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)
{