aboutsummaryrefslogtreecommitdiff
path: root/src/im-desktop-menu.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/im-desktop-menu.c')
-rw-r--r--src/im-desktop-menu.c23
1 files changed, 15 insertions, 8 deletions
diff --git a/src/im-desktop-menu.c b/src/im-desktop-menu.c
index 5707390..775483e 100644
--- a/src/im-desktop-menu.c
+++ b/src/im-desktop-menu.c
@@ -109,7 +109,7 @@ static void
im_desktop_menu_source_section_insert_source (GMenu *source_section,
const gchar *source_id,
const gchar *label,
- const gchar *icon,
+ GVariant *serialized_icon,
gint pos)
{
GMenuItem *item;
@@ -119,8 +119,8 @@ im_desktop_menu_source_section_insert_source (GMenu *source_section,
item = g_menu_item_new (label, NULL);
g_menu_item_set_action_and_target_value (item, action, NULL);
g_menu_item_set_attribute (item, "x-canonical-type", "s", "com.canonical.indicator.messages.source");
- if (icon && *icon)
- g_menu_item_set_attribute (item, "icon", "s", icon);
+ if (serialized_icon)
+ g_menu_item_set_attribute_value (item, "icon", serialized_icon);
if (pos >= 0)
g_menu_insert_item (source_section, pos, item);
@@ -169,7 +169,7 @@ im_desktop_menu_source_added (ImApplicationList *applist,
const gchar *app_id,
const gchar *source_id,
const gchar *label,
- const gchar *icon,
+ GVariant *serialized_icon,
gpointer user_data)
{
ImDesktopMenu *menu = user_data;
@@ -178,7 +178,7 @@ im_desktop_menu_source_added (ImApplicationList *applist,
source_section = g_hash_table_lookup (menu->source_sections, app_id);
g_return_if_fail (source_section != NULL);
- im_desktop_menu_source_section_insert_source (source_section, source_id, label, icon, -1);
+ im_desktop_menu_source_section_insert_source (source_section, source_id, label, serialized_icon, -1);
}
static void
@@ -204,7 +204,7 @@ im_desktop_menu_source_changed (ImApplicationList *applist,
const gchar *app_id,
const gchar *source_id,
const gchar *label,
- const gchar *icon,
+ GVariant *serialized_icon,
gboolean visible,
gpointer user_data)
{
@@ -221,7 +221,7 @@ im_desktop_menu_source_changed (ImApplicationList *applist,
g_menu_remove (section, pos);
if (visible)
- im_desktop_menu_source_section_insert_source (section, source_id, label, icon, pos);
+ im_desktop_menu_source_section_insert_source (section, source_id, label, serialized_icon, pos);
}
static void
@@ -278,10 +278,17 @@ create_status_section (void)
item = g_menu_item_new (NULL, NULL);
for (i = 0; i < G_N_ELEMENTS (status_items); i++) {
+ GIcon *icon;
+
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, "icon", "s", status_items[i].icon_name);
+
+ icon = g_themed_icon_new (status_items[i].icon_name);
+ g_menu_item_set_icon (item, icon);
+
g_menu_append_item (menu, item);
+
+ g_object_unref (icon);
}
g_object_unref (item);