diff --git a/gdk-pixbuf/ChangeLog b/gdk-pixbuf/ChangeLog index 9e6c5d1fbd..15ab9509d6 100644 --- a/gdk-pixbuf/ChangeLog +++ b/gdk-pixbuf/ChangeLog @@ -1,3 +1,11 @@ +1999-11-29 Owen Taylor + + * src/gdk-pixbuf-render.c (gdk_pixbuf_render_to_drawable_alpha): + Keep the mask around until after we draw ... since + the GC changes aren't flushed to the X server until we + draw, destroying it before that may result in BadPixmap + errors. + 1999-11-30 Havoc Pennington * configure.in: Add AM_CONDITIONAL for inside gnome-libs diff --git a/gdk/gdkpixbuf-render.c b/gdk/gdkpixbuf-render.c index 60ee06d29f..c85a367160 100644 --- a/gdk/gdkpixbuf-render.c +++ b/gdk/gdkpixbuf-render.c @@ -276,7 +276,7 @@ gdk_pixbuf_render_to_drawable_alpha (GdkPixbuf *pixbuf, GdkDrawable *drawable, int x_dither, int y_dither) { ArtPixBuf *apb; - GdkBitmap *bitmap; + GdkBitmap *bitmap = NULL; GdkGC *gc; g_return_if_fail (pixbuf != NULL); @@ -306,7 +306,6 @@ gdk_pixbuf_render_to_drawable_alpha (GdkPixbuf *pixbuf, GdkDrawable *drawable, gdk_gc_set_clip_mask (gc, bitmap); gdk_gc_set_clip_origin (gc, dest_x, dest_y); - gdk_bitmap_unref (bitmap); } gdk_pixbuf_render_to_drawable (pixbuf, drawable, gc, @@ -316,5 +315,8 @@ gdk_pixbuf_render_to_drawable_alpha (GdkPixbuf *pixbuf, GdkDrawable *drawable, dither, x_dither, y_dither); + if (bitmap) + gdk_bitmap_unref (bitmap); gdk_gc_unref (gc); } +