diff options
| author | Ted Gould <ted@gould.cx> | 2010-03-24 11:16:10 -0500 |
|---|---|---|
| committer | Ted Gould <ted@gould.cx> | 2010-03-24 11:16:10 -0500 |
| commit | 65d63c20738bf5c3951527b24b524e611af229f9 (patch) | |
| tree | 760b4541977f0743574b037b9fde472613c4a3f7 /libdbusmenu-gtk/client.c | |
| parent | c34945d55b2b2b308be4f2f0e71c621f5792e2ba (diff) | |
| parent | 61885859a612061a04e1791b30265aa5fafa7b27 (diff) | |
| download | libdbusmenu-65d63c20738bf5c3951527b24b524e611af229f9.tar.gz libdbusmenu-65d63c20738bf5c3951527b24b524e611af229f9.tar.bz2 libdbusmenu-65d63c20738bf5c3951527b24b524e611af229f9.zip | |
* Upstream Merge
* Adding support for blank icons
Diffstat (limited to 'libdbusmenu-gtk/client.c')
| -rw-r--r-- | libdbusmenu-gtk/client.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/libdbusmenu-gtk/client.c b/libdbusmenu-gtk/client.c index 781326e..e79d088 100644 --- a/libdbusmenu-gtk/client.c +++ b/libdbusmenu-gtk/client.c @@ -411,7 +411,6 @@ dbusmenu_gtkclient_menuitem_get (DbusmenuGtkClient * client, DbusmenuMenuitem * gpointer data = g_object_get_data(G_OBJECT(item), data_menuitem); if (data == NULL) { - g_warning("GTK not updated"); return NULL; } @@ -513,7 +512,7 @@ image_property_handle (DbusmenuMenuitem * item, const gchar * property, const GV if (!g_strcmp0(property, DBUSMENU_MENUITEM_PROP_ICON_DATA)) { /* If we have an image already built from a name that is way better than a pixbuf. Keep it. */ - if (gtkimage != NULL && gtk_image_get_storage_type(GTK_IMAGE(gtkimage)) == GTK_IMAGE_ICON_NAME) { + if (gtkimage != NULL && (gtk_image_get_storage_type(GTK_IMAGE(gtkimage)) == GTK_IMAGE_ICON_NAME || gtk_image_get_storage_type(GTK_IMAGE(gtkimage)) == GTK_IMAGE_EMPTY)) { return; } } @@ -525,6 +524,12 @@ image_property_handle (DbusmenuMenuitem * item, const gchar * property, const GV /* If there is no name, by golly we want no icon either. */ gtkimage = NULL; + } else if (g_strcmp0(iconname, DBUSMENU_MENUITEM_ICON_NAME_BLANK) == 0) { + if (gtkimage != NULL) { + g_object_unref(gtkimage); + } + + gtkimage = gtk_image_new(); } else { /* Look to see if we want to have an icon with the 'ltr' or 'rtl' depending on what we're doing. */ @@ -584,6 +589,14 @@ image_property_handle (DbusmenuMenuitem * item, const gchar * property, const GV } + if (gtkimage != NULL) { + gint width, height; + gtk_icon_size_lookup(GTK_ICON_SIZE_MENU, &width, &height); + + gtk_widget_set_size_request(GTK_WIDGET(gtkimage), width, height); + gtk_misc_set_alignment(GTK_MISC(gtkimage), 0.0, 0.5); + } + genericmenuitem_set_image(GENERICMENUITEM(gimi), gtkimage); return; |
