diff options
author | Owen Taylor <otaylor@redhat.com> | 2002-01-08 03:22:13 +0000 |
---|---|---|
committer | Owen Taylor <otaylor@src.gnome.org> | 2002-01-08 03:22:13 +0000 |
commit | f1742682c45d259e5644d729a9fcfb0e06158d3a (patch) | |
tree | 3802f2d13faa51ceabadc07247ea508923d7f72c /gdk | |
parent | c1808baa01e7db5e304a857132087e496641726a (diff) | |
download | gtk+-f1742682c45d259e5644d729a9fcfb0e06158d3a.tar.gz |
Fix a problem where were the offset into the image was passed into
Mon Jan 7 22:19:32 2002 Owen Taylor <otaylor@redhat.com>
* gdk/x11/gdkdrawable-x11.c (draw_with_pixmaps): Fix a
problem where were the offset into the image was passed
into convert_to_format() wrong.
* gdk/x11/gdkdrawable-x11.c (gdk_x11_draw_pixbuf): Call
gdk_x11_drawable_update_picture_clip () before using
the picture; allow update_picture_clip() to take a NULL gc
to mean no clipping.
Diffstat (limited to 'gdk')
-rw-r--r-- | gdk/x11/gdkdrawable-x11.c | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/gdk/x11/gdkdrawable-x11.c b/gdk/x11/gdkdrawable-x11.c index 221e4e0d30..ad4c97096b 100644 --- a/gdk/x11/gdkdrawable-x11.c +++ b/gdk/x11/gdkdrawable-x11.c @@ -265,11 +265,11 @@ static void gdk_x11_drawable_update_picture_clip (GdkDrawable *drawable, GdkGC *gc) { - GdkGCX11 *gc_private = GDK_GC_X11 (gc); + GdkGCX11 *gc_private = gc ? GDK_GC_X11 (gc) : NULL; GdkDrawableImplX11 *impl = GDK_DRAWABLE_IMPL_X11 (drawable); Picture picture = gdk_x11_drawable_get_picture (drawable); - if (gc_private->clip_region) + if (gc && gc_private->clip_region) { GdkRegionBox *boxes = gc_private->clip_region->rects; gint n_boxes = gc_private->clip_region->numRects; @@ -1127,7 +1127,7 @@ draw_with_images (GdkDrawable *drawable, image = _gdk_image_get_scratch (width1, height1, 32, &xs0, &ys0); convert_to_format (src_rgb + y0 * src_rowstride + 4 * x0, src_rowstride, - image->mem + ys0 * image->bpl + 4 * xs0, image->bpl, + image->mem + ys0 * image->bpl + xs0 * image->bpp, image->bpl, format_type, image->byte_order, width1, height1); @@ -1238,9 +1238,9 @@ draw_with_pixmaps (GdkDrawable *drawable, image = _gdk_image_get_scratch (width1, height1, 32, &xs0, &ys0); if (!get_shm_pixmap_for_image (xdisplay, image, format, mask_format, &pix, &pict, &mask)) return FALSE; - + convert_to_format (src_rgb + y0 * src_rowstride + 4 * x0, src_rowstride, - image->mem + ys0 * image->bpl + 4 * xs0, image->bpl, + image->mem + ys0 * image->bpl + xs0 * image->bpp, image->bpl, format_type, image->byte_order, width1, height1); @@ -1290,9 +1290,11 @@ gdk_x11_draw_pixbuf (GdkDrawable *drawable, return; } + gdk_x11_drawable_update_picture_clip (drawable, gc); + rowstride = gdk_pixbuf_get_rowstride (pixbuf); -#ifdef USE_SHM +#ifdef USE_SHM if (use_pixmaps) { if (!draw_with_pixmaps (drawable, gc, |