diff options
-rw-r--r-- | libempathy-gtk/empathy-presence-chooser.c | 6 | ||||
-rw-r--r-- | src/empathy-status-icon.c | 7 |
2 files changed, 13 insertions, 0 deletions
diff --git a/libempathy-gtk/empathy-presence-chooser.c b/libempathy-gtk/empathy-presence-chooser.c index 678ec835c..33e533273 100644 --- a/libempathy-gtk/empathy-presence-chooser.c +++ b/libempathy-gtk/empathy-presence-chooser.c @@ -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); diff --git a/src/empathy-status-icon.c b/src/empathy-status-icon.c index 21cb2dd3d..c2faaea02 100644 --- a/src/empathy-status-icon.c +++ b/src/empathy-status-icon.c @@ -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); } |