From 1396ab4d4d799a7d51c8ac24b39921e81c900152 Mon Sep 17 00:00:00 2001 From: Lars Uebernickel Date: Fri, 24 Aug 2012 18:41:21 +0200 Subject: Request showing the chat section also when the app is not running --- src/app-section.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/app-section.c b/src/app-section.c index 1574892..0487fbb 100644 --- a/src/app-section.c +++ b/src/app-section.c @@ -695,6 +695,5 @@ app_section_get_uses_chat_status (AppSection *self) { AppSectionPrivate * priv = self->priv; - /* chat status is only useful when the app is running */ - return priv->uses_chat_status && priv->source_actions; + return priv->uses_chat_status; } -- cgit v1.2.3 From 8c307acb3c043645580c7a613c85fd0a5f019d49 Mon Sep 17 00:00:00 2001 From: Lars Uebernickel Date: Fri, 24 Aug 2012 18:49:03 +0200 Subject: Don't spam debug messages --- src/messages-service.c | 1 - 1 file changed, 1 deletion(-) diff --git a/src/messages-service.c b/src/messages-service.c index 407b8ba..db7a8d7 100644 --- a/src/messages-service.c +++ b/src/messages-service.c @@ -313,7 +313,6 @@ change_status_action (GSimpleAction *action, g_str_equal (status, "offline")); if (!g_action_state_equal (G_ACTION (action), value)) { - g_message ("%s", status); g_simple_action_set_state (action, value); indicator_messages_service_emit_status_changed (messages_service, status); } -- cgit v1.2.3 From 4376e3e3650b18b421b53f2d441f7e74cabb70f1 Mon Sep 17 00:00:00 2001 From: Lars Uebernickel Date: Fri, 24 Aug 2012 19:11:33 +0200 Subject: Make sure the time shown in the menu is always current --- src/im-source-menu-item.c | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/src/im-source-menu-item.c b/src/im-source-menu-item.c index 269c75d..43c0afb 100644 --- a/src/im-source-menu-item.c +++ b/src/im-source-menu-item.c @@ -29,6 +29,9 @@ struct _ImSourceMenuItemPrivate GtkWidget *icon; GtkWidget *label; GtkWidget *detail; + + gint64 time; + guint timer_id; }; enum @@ -143,6 +146,19 @@ im_source_menu_item_time_span_string (gint64 timestamp) return str; } +static gboolean +im_source_menu_item_update_time (gpointer data) +{ + ImSourceMenuItem *self = data; + gchar *str; + + str = im_source_menu_item_time_span_string (self->priv->time); + gtk_label_set_text (GTK_LABEL (self->priv->detail), str); + + g_free (str); + return TRUE; +} + static gboolean im_source_menu_item_set_state (ImSourceMenuItem *self, GVariant *state) @@ -153,6 +169,12 @@ im_source_menu_item_set_state (ImSourceMenuItem *self, const gchar *str; gchar *detail; + if (priv->timer_id != 0) + { + g_source_remove (priv->timer_id); + priv->timer_id = 0; + } + g_return_val_if_fail (g_variant_is_of_type (state, G_VARIANT_TYPE ("(uxsb)")), FALSE); g_variant_get (state, "(ux&sb)", &count, &time, &str, NULL); @@ -160,7 +182,11 @@ im_source_menu_item_set_state (ImSourceMenuItem *self, if (count != 0) detail = g_strdup_printf ("%d", count); else if (time != 0) - detail = im_source_menu_item_time_span_string (time); + { + priv->time = time; + detail = im_source_menu_item_time_span_string (time); + priv->timer_id = g_timeout_add_seconds (59, im_source_menu_item_update_time, self); + } else if (str != NULL && *str) detail = collapse_whitespace (str); else @@ -275,6 +301,12 @@ im_source_menu_item_dispose (GObject *object) { ImSourceMenuItem *self = IM_SOURCE_MENU_ITEM (object); + if (self->priv->timer_id != 0) + { + g_source_remove (self->priv->timer_id); + self->priv->timer_id = 0; + } + if (self->priv->action_group) im_source_menu_item_set_action_group (self, NULL); -- cgit v1.2.3