diff options
Diffstat (limited to 'libempathy-gtk')
-rw-r--r-- | libempathy-gtk/Makefile.am | 2 | ||||
-rw-r--r-- | libempathy-gtk/empathy-chat.c | 5 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-store.c | 1 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-store.h | 1 | ||||
-rw-r--r-- | libempathy-gtk/empathy-individual-view.c | 14 |
5 files changed, 18 insertions, 5 deletions
diff --git a/libempathy-gtk/Makefile.am b/libempathy-gtk/Makefile.am index a834679c1..7023ecfe5 100644 --- a/libempathy-gtk/Makefile.am +++ b/libempathy-gtk/Makefile.am @@ -12,6 +12,7 @@ AM_CPPFLAGS = \ $(ENCHANT_CFLAGS) \ $(LIBCHAMPLAIN_CFLAGS) \ $(GEOCLUE_CFLAGS) \ + $(GEOCODE_CFLAGS) \ $(MEEGO_CFLAGS) \ $(WEBKIT_CFLAGS) \ $(CHEESE_CFLAGS) \ @@ -169,6 +170,7 @@ libempathy_gtk_la_LIBADD = \ $(ENCHANT_LIBS) \ $(LIBCHAMPLAIN_LIBS) \ $(GEOCLUE_LIBS) \ + $(GEOCODE_LIBS) \ $(GCR_LIBS) \ $(MEEGO_LIBS) \ $(WEBKIT_LIBS) \ diff --git a/libempathy-gtk/empathy-chat.c b/libempathy-gtk/empathy-chat.c index 74ee8ec96..3c391c864 100644 --- a/libempathy-gtk/empathy-chat.c +++ b/libempathy-gtk/empathy-chat.c @@ -3642,7 +3642,8 @@ chat_sms_channel_changed_cb (EmpathyChat *self) { EmpathyChatPriv *priv = GET_PRIV (self); - priv->sms_channel = empathy_tp_chat_is_sms_channel (priv->tp_chat); + priv->sms_channel = tp_text_channel_is_sms_channel ( + (TpTextChannel *) priv->tp_chat); g_object_notify (G_OBJECT (self), "sms-channel"); } @@ -3703,7 +3704,7 @@ empathy_chat_set_tp_chat (EmpathyChat *chat, g_signal_connect_swapped (tp_chat, "notify::password-needed", G_CALLBACK (chat_password_needed_changed_cb), chat); - g_signal_connect_swapped (tp_chat, "notify::sms-channel", + g_signal_connect_swapped (tp_chat, "notify::is-sms-channel", G_CALLBACK (chat_sms_channel_changed_cb), chat); g_signal_connect_swapped (tp_chat, "notify::n-messages-sending", diff --git a/libempathy-gtk/empathy-individual-store.c b/libempathy-gtk/empathy-individual-store.c index ac1a96c02..e4e644424 100644 --- a/libempathy-gtk/empathy-individual-store.c +++ b/libempathy-gtk/empathy-individual-store.c @@ -1572,6 +1572,7 @@ individual_store_setup (EmpathyIndividualStore *self) G_TYPE_BOOLEAN, /* Can make video calls */ G_TYPE_BOOLEAN, /* Is a fake group */ G_TYPE_STRV, /* Client types */ + G_TYPE_UINT, /* Event count */ }; priv = GET_PRIV (self); diff --git a/libempathy-gtk/empathy-individual-store.h b/libempathy-gtk/empathy-individual-store.h index ae5f3c580..418761ead 100644 --- a/libempathy-gtk/empathy-individual-store.h +++ b/libempathy-gtk/empathy-individual-store.h @@ -65,6 +65,7 @@ typedef enum EMPATHY_INDIVIDUAL_STORE_COL_CAN_VIDEO_CALL, EMPATHY_INDIVIDUAL_STORE_COL_IS_FAKE_GROUP, EMPATHY_INDIVIDUAL_STORE_COL_CLIENT_TYPES, + EMPATHY_INDIVIDUAL_STORE_COL_EVENT_COUNT, EMPATHY_INDIVIDUAL_STORE_COL_COUNT, } EmpathyIndividualStoreCol; diff --git a/libempathy-gtk/empathy-individual-view.c b/libempathy-gtk/empathy-individual-view.c index 52ceff6c7..0fb24430c 100644 --- a/libempathy-gtk/empathy-individual-view.c +++ b/libempathy-gtk/empathy-individual-view.c @@ -1694,7 +1694,8 @@ individual_view_is_visible_individual (EmpathyIndividualView *self, gboolean is_online, gboolean is_searching, const gchar *group, - gboolean is_fake_group) + gboolean is_fake_group, + guint event_count) { EmpathyIndividualViewPriv *priv = GET_PRIV (self); EmpathyLiveSearch *live = EMPATHY_LIVE_SEARCH (priv->search_widget); @@ -1702,6 +1703,10 @@ individual_view_is_visible_individual (EmpathyIndividualView *self, GeeIterator *iter; gboolean is_favorite, contains_interesting_persona = FALSE; + /* Always display individuals having pending events */ + if (event_count > 0) + return TRUE; + /* We're only giving the visibility wrt filtering here, not things like * presence. */ if (priv->show_untrusted == FALSE && @@ -1777,6 +1782,7 @@ individual_view_filter_visible_func (GtkTreeModel *model, GtkTreeIter child_iter; gboolean visible, is_online; gboolean is_searching = TRUE; + guint event_count; if (priv->custom_filter != NULL) return priv->custom_filter (model, iter, priv->custom_filter_data); @@ -1790,6 +1796,7 @@ individual_view_filter_visible_func (GtkTreeModel *model, EMPATHY_INDIVIDUAL_STORE_COL_IS_SEPARATOR, &is_separator, EMPATHY_INDIVIDUAL_STORE_COL_IS_ONLINE, &is_online, EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual, + EMPATHY_INDIVIDUAL_STORE_COL_EVENT_COUNT, &event_count, -1); if (individual != NULL) @@ -1800,7 +1807,7 @@ individual_view_filter_visible_func (GtkTreeModel *model, group = get_group (model, iter, &is_fake_group); visible = individual_view_is_visible_individual (self, individual, - is_online, is_searching, group, is_fake_group); + is_online, is_searching, group, is_fake_group, event_count); g_object_unref (individual); g_free (group); @@ -1832,6 +1839,7 @@ individual_view_filter_visible_func (GtkTreeModel *model, gtk_tree_model_get (model, &child_iter, EMPATHY_INDIVIDUAL_STORE_COL_INDIVIDUAL, &individual, EMPATHY_INDIVIDUAL_STORE_COL_IS_ONLINE, &is_online, + EMPATHY_INDIVIDUAL_STORE_COL_EVENT_COUNT, &event_count, -1); if (individual == NULL) @@ -1840,7 +1848,7 @@ individual_view_filter_visible_func (GtkTreeModel *model, group = get_group (model, &child_iter, &is_fake_group); visible = individual_view_is_visible_individual (self, individual, - is_online, is_searching, group, is_fake_group); + is_online, is_searching, group, is_fake_group, event_count); g_object_unref (individual); g_free (group); |