diff options
Diffstat (limited to 'x11-libs/gtk+/files/gtk+-2.2.1-disable_icons_smooth_alpha.patch')
-rw-r--r-- | x11-libs/gtk+/files/gtk+-2.2.1-disable_icons_smooth_alpha.patch | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/x11-libs/gtk+/files/gtk+-2.2.1-disable_icons_smooth_alpha.patch b/x11-libs/gtk+/files/gtk+-2.2.1-disable_icons_smooth_alpha.patch new file mode 100644 index 0000000..063f594 --- /dev/null +++ b/x11-libs/gtk+/files/gtk+-2.2.1-disable_icons_smooth_alpha.patch @@ -0,0 +1,51 @@ +diff -ru gtk+-2.2.1/gtk/gtkstyle.c gtk+-2.2.1.patch/gtk/gtkstyle.c +--- gtk+-2.2.1/gtk/gtkstyle.c 2003-01-31 05:42:34.000000000 +0100 ++++ gtk+-2.2.1.patch/gtk/gtkstyle.c 2003-02-07 19:16:04.000000000 +0100 +@@ -1988,6 +1988,36 @@ + } + } + ++static void ++set_pixbuf_alpha (GdkPixbuf *src) ++{ ++ int width, wb; ++ int height; ++ int rowstride; ++ gboolean has_alpha; ++ guchar *pixels, *p; ++ int i, j; ++ ++ width = gdk_pixbuf_get_width (src); ++ height = gdk_pixbuf_get_height (src); ++ rowstride = gdk_pixbuf_get_rowstride (src); ++ has_alpha = gdk_pixbuf_get_has_alpha (src); ++ ++ if (has_alpha == FALSE) ++ return; ++ ++ pixels = gdk_pixbuf_get_pixels (src); ++ ++ wb = width << 2; ++ for (i = 0; i < height; i ++) ++ { ++ p = pixels + (i * rowstride); ++ ++ for (j = 0; j < wb; j += 4) ++ p[j + 3] = p[j + 3] >> 1; ++ } ++} ++ + static GdkPixbuf * + gtk_default_render_icon (GtkStyle *style, + const GtkIconSource *source, +@@ -2054,8 +2084,8 @@ + stated = gdk_pixbuf_copy (scaled); + + gdk_pixbuf_saturate_and_pixelate (scaled, stated, +- 0.8, TRUE); +- ++ 0.0, FALSE); ++ set_pixbuf_alpha (stated); + g_object_unref (scaled); + } + else if (state == GTK_STATE_PRELIGHT) |