]> git.0d.be Git - empathy.git/commitdiff
Force an unset presence type to appear as offline in the presence chooser and status...
authorJonny Lamb <jonnylamb@gnome.org>
Thu, 12 Nov 2009 10:58:34 +0000 (10:58 +0000)
committerGuillaume Desmottes <guillaume.desmottes@collabora.co.uk>
Thu, 12 Nov 2009 10:58:34 +0000 (10:58 +0000)
An unset presence type *does* make sense, but not in these
contexts. As an aside, there is no icon for an unset presence, so
nothing is displayed, which is bad.

Fixes bug #597819

libempathy-gtk/empathy-presence-chooser.c
src/empathy-status-icon.c

index 678ec835c5126f74cf9422fc3113331419c4ac37..33e533273138871412860a35e2f1568a966c2b2b 100644 (file)
@@ -951,6 +951,12 @@ presence_chooser_presence_changed_cb (EmpathyPresenceChooser *chooser)
        status = empathy_idle_get_status (priv->idle);
        flash_state = empathy_idle_get_flash_state (priv->idle);
 
+       /* An unset presence here doesn't make any sense. Force it to appear as
+        * offline. */
+       if (state == TP_CONNECTION_PRESENCE_TYPE_UNSET) {
+               state = TP_CONNECTION_PRESENCE_TYPE_OFFLINE;
+       }
+
        /* look through the model and attempt to find a matching state */
        model = gtk_combo_box_get_model (GTK_COMBO_BOX (chooser));
        for (valid = gtk_tree_model_get_iter_first (model, &iter);
index 21cb2dd3d2f98af58a894483b8e5d616140962e9..c2faaea02af87150ff09c3a02ee3071b5cf9ca1a 100644 (file)
@@ -239,6 +239,13 @@ status_icon_update_icon (EmpathyStatusIcon *icon)
                TpConnectionPresenceType state;
 
                state = empathy_idle_get_state (priv->idle);
+
+               /* An unset presence type here doesn't make sense. Force it
+                * to be offline. */
+               if (state == TP_CONNECTION_PRESENCE_TYPE_UNSET) {
+                       state = TP_CONNECTION_PRESENCE_TYPE_OFFLINE;
+               }
+
                icon_name = empathy_icon_name_for_presence (state);
        }