aboutsummaryrefslogtreecommitdiffstats
path: root/libempathy-gtk
diff options
context:
space:
mode:
Diffstat (limited to 'libempathy-gtk')
-rw-r--r--libempathy-gtk/Makefile.am2
-rw-r--r--libempathy-gtk/empathy-chat.c5
-rw-r--r--libempathy-gtk/empathy-individual-store.c1
-rw-r--r--libempathy-gtk/empathy-individual-store.h1
-rw-r--r--libempathy-gtk/empathy-individual-view.c14
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);