diff options
author | Sebastien Bacher <seb128@ubuntu.com> | 2010-02-04 17:45:52 -0800 |
---|---|---|
committer | Sebastien Bacher <seb128@ubuntu.com> | 2010-02-04 17:45:52 -0800 |
commit | b8830e1f10bffec7b3bcdacef125b4cbf5472d01 (patch) | |
tree | 83c86a160709350de6c76455ab45c5be818c5fef /src/indicator-application.c | |
parent | 10c9c763d83386c7a0dea94868d7238acee18ba9 (diff) | |
parent | 5bd28754757d8fa61fdad1d7f065d1c25c75befa (diff) | |
download | libayatana-appindicator-b8830e1f10bffec7b3bcdacef125b4cbf5472d01.tar.gz libayatana-appindicator-b8830e1f10bffec7b3bcdacef125b4cbf5472d01.tar.bz2 libayatana-appindicator-b8830e1f10bffec7b3bcdacef125b4cbf5472d01.zip |
releasing version 0.0.11-0ubuntu10.0.11-0ubuntu1
Diffstat (limited to 'src/indicator-application.c')
-rw-r--r-- | src/indicator-application.c | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/src/indicator-application.c b/src/indicator-application.c index 3ef5688..6c053a9 100644 --- a/src/indicator-application.c +++ b/src/indicator-application.c @@ -41,6 +41,8 @@ with this program. If not, see <http://www.gnu.org/licenses/>. #include "application-service-client.h" #include "application-service-marshal.h" +#define PANEL_ICON_SUFFIX "panel" + #define INDICATOR_APPLICATION_TYPE (indicator_application_get_type ()) #define INDICATOR_APPLICATION(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), INDICATOR_APPLICATION_TYPE, IndicatorApplication)) #define INDICATOR_APPLICATION_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), INDICATOR_APPLICATION_TYPE, IndicatorApplicationClass)) @@ -325,7 +327,17 @@ application_added (DBusGProxy * proxy, const gchar * iconname, gint position, co theme_dir_ref(application, icon_path); } - app->entry.image = GTK_IMAGE(gtk_image_new_from_icon_name(iconname, GTK_ICON_SIZE_MENU)); + /* We make a long name using the suffix, and if that + icon is available we want to use it. Otherwise we'll + just use the name we were given. */ + gchar * longname = g_strdup_printf("%s-%s", iconname, PANEL_ICON_SUFFIX); + if (gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), longname)) { + app->entry.image = GTK_IMAGE(gtk_image_new_from_icon_name(longname, GTK_ICON_SIZE_MENU)); + } else { + app->entry.image = GTK_IMAGE(gtk_image_new_from_icon_name(iconname, GTK_ICON_SIZE_MENU)); + } + g_free(longname); + app->entry.label = NULL; app->entry.menu = GTK_MENU(dbusmenu_gtkmenu_new((gchar *)dbusaddress, (gchar *)dbusobject)); @@ -390,7 +402,17 @@ application_icon_changed (DBusGProxy * proxy, gint position, const gchar * iconn return; } - gtk_image_set_from_icon_name(app->entry.image, iconname, GTK_ICON_SIZE_MENU); + /* We make a long name using the suffix, and if that + icon is available we want to use it. Otherwise we'll + just use the name we were given. */ + gchar * longname = g_strdup_printf("%s-%s", iconname, PANEL_ICON_SUFFIX); + if (gtk_icon_theme_has_icon(gtk_icon_theme_get_default(), longname)) { + gtk_image_set_from_icon_name(app->entry.image, longname, GTK_ICON_SIZE_MENU); + } else { + gtk_image_set_from_icon_name(app->entry.image, iconname, GTK_ICON_SIZE_MENU); + } + g_free(longname); + return; } |