aboutsummaryrefslogtreecommitdiff
path: root/src/messages-service.c
diff options
context:
space:
mode:
authorSebastien Bacher <seb128@ubuntu.com>2012-08-27 18:38:53 +0200
committerSebastien Bacher <seb128@ubuntu.com>2012-08-27 18:38:53 +0200
commitd28296b69565793050e51717a89c84eeadd88dbc (patch)
treee3d5330da86f1e626a3b649a429f56a102b5dd6a /src/messages-service.c
parent9d8a4eeaf93b5f5537558e925a1c4f9b16e772b7 (diff)
parentabda3b07fce605d8de1c182e1dfc7569ed681f3e (diff)
downloadayatana-indicator-messages-d28296b69565793050e51717a89c84eeadd88dbc.tar.gz
ayatana-indicator-messages-d28296b69565793050e51717a89c84eeadd88dbc.tar.bz2
ayatana-indicator-messages-d28296b69565793050e51717a89c84eeadd88dbc.zip
Import upstream version 12.10.1
Diffstat (limited to 'src/messages-service.c')
-rw-r--r--src/messages-service.c32
1 files changed, 26 insertions, 6 deletions
diff --git a/src/messages-service.c b/src/messages-service.c
index 407b8ba..15c5123 100644
--- a/src/messages-service.c
+++ b/src/messages-service.c
@@ -134,6 +134,8 @@ uses_chat_status_changed (GObject *object,
if (show_chat)
g_menu_insert_section (menu, 0, NULL, chat_section);
}
+
+ g_object_unref (first_section);
}
static AppSection *
@@ -313,7 +315,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);
}
@@ -405,14 +406,33 @@ static GMenuModel *
create_status_section (void)
{
GMenu *menu;
+ GMenuItem *item;
+ struct status_item {
+ gchar *label;
+ gchar *action;
+ gchar *icon_name;
+ } status_items[] = {
+ { _("Available"), "status::available", "user-available" },
+ { _("Away"), "status::away", "user-away" },
+ { _("Busy"), "status::busy", "user-busy" },
+ { _("Invisible"), "status::invisible", "user-invisible" },
+ { _("Offline"), "status::offline", "user-offline" }
+ };
+ int i;
menu = g_menu_new ();
- g_menu_append_with_icon_name (menu, _("Available"), "user-available", "status::available");
- g_menu_append_with_icon_name (menu, _("Away"), "user-away", "status::away");
- g_menu_append_with_icon_name (menu, _("Busy"), "user-busy", "status::busy");
- g_menu_append_with_icon_name (menu, _("Invisible"), "user-invisible", "status::invisible");
- g_menu_append_with_icon_name (menu, _("Offline"), "user-offline", "status::offline");
+ item = g_menu_item_new (NULL, NULL);
+ g_menu_item_set_attribute (item, "x-canonical-type", "s", "IdoMenuItem");
+
+ for (i = 0; i < G_N_ELEMENTS (status_items); i++) {
+ g_menu_item_set_label (item, status_items[i].label);
+ g_menu_item_set_detailed_action (item, status_items[i].action);
+ g_menu_item_set_attribute (item, "x-canonical-icon", "s", status_items[i].icon_name);
+ g_menu_append_item (menu, item);
+ }
+
+ g_object_unref (item);
return G_MENU_MODEL (menu);
}