Icons for windows are taken from the desktop theme, not from the Metacity

2008-08-14   Patrick Niklaus  <marex@compiz-fusion.org>

          Icons for windows are taken from the desktop theme, not from
          the Metacity theme or from the fallback icon that Metacity
          provided.  Closes #524343.

        * src/ui/ui.c: Use GtkIconTheme to load the default window icon.
          Assumes the existence of an icon called "window", otherwise
          falls back to "gtk-missing-image". Fixes #524343.
        * src/ui/preview-widget: See above.
        * src/include/common.h: Add META_DEFAULT_ICON_NAME.
        * src/Makefile.am: Remove default_icon.png from inlinepixbufs.h.
        * src/default_icon.png: Removed.


svn path=/trunk/; revision=3812
This commit is contained in:
Patrick Niklaus
2008-08-14 14:01:51 +00:00
committed by Thomas James Alexander Thurman
parent 92fe1574ec
commit 5631cbe22d
5 changed files with 87 additions and 45 deletions

View File

@ -574,20 +574,27 @@ meta_ui_get_default_window_icon (MetaUI *ui)
if (default_icon == NULL)
{
GdkPixbuf *base;
GtkIconTheme *theme;
gboolean icon_exists;
base = gdk_pixbuf_new_from_inline (-1, default_icon_data,
FALSE,
NULL);
theme = gtk_icon_theme_get_default ();
g_assert (base);
icon_exists = gtk_icon_theme_has_icon (theme, META_DEFAULT_ICON_NAME);
default_icon = gdk_pixbuf_scale_simple (base,
META_ICON_WIDTH,
META_ICON_HEIGHT,
GDK_INTERP_BILINEAR);
if (icon_exists)
default_icon = gtk_icon_theme_load_icon (theme,
META_DEFAULT_ICON_NAME,
META_ICON_WIDTH,
0,
NULL);
else
default_icon = gtk_icon_theme_load_icon (theme,
"gtk-missing-image",
META_ICON_WIDTH,
0,
NULL);
g_object_unref (G_OBJECT (base));
g_assert (default_icon);
}
g_object_ref (G_OBJECT (default_icon));
@ -602,20 +609,27 @@ meta_ui_get_default_mini_icon (MetaUI *ui)
if (default_icon == NULL)
{
GdkPixbuf *base;
GtkIconTheme *theme;
gboolean icon_exists;
base = gdk_pixbuf_new_from_inline (-1, default_icon_data,
FALSE,
NULL);
theme = gtk_icon_theme_get_default ();
g_assert (base);
icon_exists = gtk_icon_theme_has_icon (theme, META_DEFAULT_ICON_NAME);
default_icon = gdk_pixbuf_scale_simple (base,
META_MINI_ICON_WIDTH,
META_MINI_ICON_HEIGHT,
GDK_INTERP_BILINEAR);
if (icon_exists)
default_icon = gtk_icon_theme_load_icon (theme,
META_DEFAULT_ICON_NAME,
META_MINI_ICON_WIDTH,
0,
NULL);
else
default_icon = gtk_icon_theme_load_icon (theme,
"gtk-missing-image",
META_MINI_ICON_WIDTH,
0,
NULL);
g_object_unref (G_OBJECT (base));
g_assert (default_icon);
}
g_object_ref (G_OBJECT (default_icon));