diff options
Diffstat (limited to 'src/ui')
| -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 | 
