forked from AuroraMiddleware/gtk
Fix clipping of drawn pixbufs in the no-render case
The fallback pixbuf rendering case ends up calling gdk_draw_image() on the destination drawable wrapper, which resets the previously set clip region. So, we need to manually get the impl and draw on that directly. This fixes bug 592752 where we don't clip pixbuf rendering on non-render Xservers.
This commit is contained in:
parent
9e12297d69
commit
0ad0646daf
@ -1638,11 +1638,13 @@ gdk_drawable_real_draw_pixbuf (GdkDrawable *drawable,
|
|||||||
have already retargeted the destination to any
|
have already retargeted the destination to any
|
||||||
impl window and set the clip, so what we really
|
impl window and set the clip, so what we really
|
||||||
want to do is draw directly on the impl, ignoring
|
want to do is draw directly on the impl, ignoring
|
||||||
client side subwindows. */
|
client side subwindows. We also use the impl
|
||||||
|
in the pixmap target case to avoid resetting the
|
||||||
|
already set clip on the GC. */
|
||||||
if (GDK_IS_WINDOW (drawable))
|
if (GDK_IS_WINDOW (drawable))
|
||||||
real_drawable = GDK_WINDOW_OBJECT (drawable)->impl;
|
real_drawable = GDK_WINDOW_OBJECT (drawable)->impl;
|
||||||
else
|
else
|
||||||
real_drawable = drawable;
|
real_drawable = GDK_PIXMAP_OBJECT (drawable)->impl;
|
||||||
|
|
||||||
if (pixbuf->has_alpha)
|
if (pixbuf->has_alpha)
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user