diff options
Diffstat (limited to 'src/ui/ui.c')
-rw-r--r-- | src/ui/ui.c | 18 |
1 files changed, 7 insertions, 11 deletions
diff --git a/src/ui/ui.c b/src/ui/ui.c index 3c32c909..00500c03 100644 --- a/src/ui/ui.c +++ b/src/ui/ui.c @@ -650,7 +650,7 @@ meta_ui_get_default_mini_icon (MetaUI *ui) } static GdkPixbuf * -load_window_icon_from_app (char *app_id, int size, int scale) +load_window_icon_from_desktop_id (char *desktop_id, int size, int scale) { GtkIconTheme *theme = gtk_icon_theme_get_default (); GdkPixbuf *pixbuf = NULL; @@ -659,17 +659,13 @@ load_window_icon_from_app (char *app_id, int size, int scale) GIcon *gicon; GtkIconInfo *icon_info; - /* Generate a desktop ID the GTK Application ID name (e.g. org.mate.Caja.desktop). */ - gchar *desktop_id = g_strconcat(app_id, ".desktop", NULL); - - if (desktop_id == NULL) + if (desktop_id == NULL || !g_str_has_suffix (desktop_id, ".desktop")) return NULL; - /* Now that we have the desktop file ID, we extract the icon from it and render it */ info = g_desktop_app_info_new (desktop_id); - g_free(desktop_id); if (info == NULL) return NULL; + gicon = g_app_info_get_icon (G_APP_INFO (info)); icon_info = gtk_icon_theme_lookup_by_gicon_for_scale (theme, gicon, size, scale, GTK_ICON_LOOKUP_FORCE_SIZE); if (icon_info) @@ -682,7 +678,7 @@ load_window_icon_from_app (char *app_id, int size, int scale) } GdkPixbuf* -meta_ui_get_window_icon_from_app (MetaUI *ui, char *name) +meta_ui_get_window_icon_from_desktop_id (MetaUI *ui, char *desktop_id) { int scale; int size; @@ -690,11 +686,11 @@ meta_ui_get_window_icon_from_app (MetaUI *ui, char *name) scale = gtk_widget_get_scale_factor (GTK_WIDGET (ui->frames)); size = meta_prefs_get_icon_size() / scale; - return load_window_icon_from_app (name, size, scale); + return load_window_icon_from_desktop_id (desktop_id, size, scale); } GdkPixbuf* -meta_ui_get_mini_icon_from_app (MetaUI *ui, char *name) +meta_ui_get_mini_icon_from_desktop_id (MetaUI *ui, char *desktop_id) { int scale; int size; @@ -702,7 +698,7 @@ meta_ui_get_mini_icon_from_app (MetaUI *ui, char *name) scale = gtk_widget_get_scale_factor (GTK_WIDGET (ui->frames)); size = META_MINI_ICON_WIDTH / scale; - return load_window_icon_from_app (name, size, scale); + return load_window_icon_from_desktop_id (desktop_id, size, scale); } gboolean |