diff options
author | Ted Gould <ted@gould.cx> | 2010-01-11 23:56:04 -0600 |
---|---|---|
committer | Ted Gould <ted@gould.cx> | 2010-01-11 23:56:04 -0600 |
commit | d8e6f9d2cc3e43e6975ba3a4ad973ddee6e93598 (patch) | |
tree | 4f92f5058434aca12c63115b936fbd943fbf56b1 | |
parent | a7f456c679c535378d26033a810e82e019ec36b1 (diff) | |
parent | 4fc84fe20d8b3a1bde301591e69dea19d285be37 (diff) | |
download | libdbusmenu-d8e6f9d2cc3e43e6975ba3a4ad973ddee6e93598.tar.gz libdbusmenu-d8e6f9d2cc3e43e6975ba3a4ad973ddee6e93598.tar.bz2 libdbusmenu-d8e6f9d2cc3e43e6975ba3a4ad973ddee6e93598.zip |
* Upstream update
* Setting direction based on parent widget text direction.
-rw-r--r-- | debian/changelog | 7 | ||||
-rw-r--r-- | libdbusmenu-gtk/client.c | 22 |
2 files changed, 27 insertions, 2 deletions
diff --git a/debian/changelog b/debian/changelog index 3596aa1..6124987 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +libdbusmenu (0.2.0-0ubuntu2~ppa2) UNRELEASED; urgency=low + + * Upstream update + * Setting direction based on parent widget text direction. + + -- Ted Gould <ted@ubuntu.com> Mon, 11 Jan 2010 23:55:43 -0600 + libdbusmenu (0.2.0-0ubuntu2~ppa1) karmic; urgency=low * Upstream update diff --git a/libdbusmenu-gtk/client.c b/libdbusmenu-gtk/client.c index 4a8637a..dd94663 100644 --- a/libdbusmenu-gtk/client.c +++ b/libdbusmenu-gtk/client.c @@ -511,13 +511,31 @@ image_property_handle (DbusmenuMenuitem * item, const gchar * property, const GV icon either. */ gtkimage = NULL; } else { + /* Look to see if we want to have an icon with the 'ltr' or + 'rtl' depending on what we're doing. */ + gchar * finaliconname = g_strdup_printf("%s-%s", iconname, + gtk_widget_get_direction(GTK_WIDGET(gimi)) == GTK_TEXT_DIR_RTL ? "rtl" : "ltr"); + if (!gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), finaliconname)) { + /* If we don't have that icon, fall back to having one + without the extra bits. */ + g_free(finaliconname); + finaliconname = (gchar *)iconname; /* Dropping const not + becaue we don't love it. */ + } + /* If we don't have an image, we need to build one so that we can set the name. Otherwise we can just convert it to this name. */ if (gtkimage == NULL) { - gtkimage = gtk_image_new_from_icon_name(iconname, GTK_ICON_SIZE_MENU); + gtkimage = gtk_image_new_from_icon_name(finaliconname, GTK_ICON_SIZE_MENU); } else { - gtk_image_set_from_icon_name(GTK_IMAGE(gtkimage), iconname, GTK_ICON_SIZE_MENU); + gtk_image_set_from_icon_name(GTK_IMAGE(gtkimage), finaliconname, GTK_ICON_SIZE_MENU); + } + + /* If we're using the name with extra bits, then we need + to free that string. */ + if (finaliconname != iconname) { + g_free(finaliconname); } } } else { |