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

@ -1,3 +1,17 @@
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.
2008-08-14 Akira TAGOH <akira@tagoh.org>
* doc/man/metacity-message.1: new manual page.

View File

@ -180,9 +180,8 @@ else
install-data-local:
endif
IMAGES=default_icon.png stock_maximize.png stock_minimize.png stock_delete.png
VARIABLES=default_icon_data $(srcdir)/default_icon.png \
stock_maximize_data $(srcdir)/stock_maximize.png \
IMAGES=stock_maximize.png stock_minimize.png stock_delete.png
VARIABLES=stock_maximize_data $(srcdir)/stock_maximize.png \
stock_minimize_data $(srcdir)/stock_minimize.png \
stock_delete_data $(srcdir)/stock_delete.png

View File

@ -278,6 +278,8 @@ struct _MetaButtonLayout
#define META_MINI_ICON_WIDTH 16
#define META_MINI_ICON_HEIGHT 16
#define META_DEFAULT_ICON_NAME "window"
#define META_PRIORITY_PREFS_NOTIFY (G_PRIORITY_DEFAULT_IDLE + 10)
#define META_PRIORITY_WORK_AREA_HINT (G_PRIORITY_DEFAULT_IDLE + 15)

View File

@ -25,6 +25,7 @@
#define _XOPEN_SOURCE 600 /* for the maths routines over floats */
#include <math.h>
#include <gtk/gtkicontheme.h>
#include "preview-widget.h"
static void meta_preview_class_init (MetaPreviewClass *klass);
@ -411,8 +412,6 @@ meta_preview_set_button_layout (MetaPreview *preview,
gtk_widget_queue_draw (GTK_WIDGET (preview));
}
#include "inlinepixbufs.h"
GdkPixbuf*
meta_preview_get_icon (void)
{
@ -420,20 +419,27 @@ meta_preview_get_icon (void)
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);
}
return default_icon;
@ -446,20 +452,27 @@ meta_preview_get_mini_icon (void)
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);
}
return default_icon;

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));