Alexandre Julliard : server: Also exclude the top-level client rectangle for windows that have a pixel format .

Alexandre Julliard julliard at winehq.org
Mon Feb 11 13:06:32 CST 2013


Module: wine
Branch: master
Commit: ca5746ad1a99fde06a7309cc47031cc898c6ee69
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=ca5746ad1a99fde06a7309cc47031cc898c6ee69

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Feb 11 15:41:20 2013 +0100

server: Also exclude the top-level client rectangle for windows that have a pixel format.

---

 dlls/winex11.drv/bitblt.c |    1 +
 server/window.c           |    5 ++++-
 2 files changed, 5 insertions(+), 1 deletions(-)

diff --git a/dlls/winex11.drv/bitblt.c b/dlls/winex11.drv/bitblt.c
index e52fbc2..2fc7c94 100644
--- a/dlls/winex11.drv/bitblt.c
+++ b/dlls/winex11.drv/bitblt.c
@@ -2029,6 +2029,7 @@ struct window_surface *create_surface( Window window, const XVisualInfo *vis, co
     }
 
     surface->gc = XCreateGC( gdi_display, window, 0, NULL );
+    XSetSubwindowMode( gdi_display, surface->gc, IncludeInferiors );
     surface->byteswap = image_needs_byteswap( surface->image, is_r8g8b8(vis), format->bits_per_pixel );
 
     if (surface->byteswap || format->bits_per_pixel == 4 || format->bits_per_pixel == 8)
diff --git a/server/window.c b/server/window.c
index a460a7c..fbe522a 100644
--- a/server/window.c
+++ b/server/window.c
@@ -1084,6 +1084,9 @@ static struct region *get_surface_region( struct window *win )
     set_region_rect( clip, &win->client_rect );
     if (win->win_region && !intersect_window_region( clip, win )) goto error;
 
+    if ((win->paint_flags & PAINT_HAS_PIXEL_FORMAT) && !subtract_region( region, region, clip ))
+        goto error;
+
     /* clip children */
 
     if (!is_desktop_window(win))
@@ -2264,7 +2267,7 @@ DECL_HANDLER(set_window_pos)
     top = get_top_clipping_window( win );
     if (is_visible( top ) &&
         (top->paint_flags & PAINT_HAS_SURFACE) &&
-        (top->paint_flags & PAINT_PIXEL_FORMAT_CHILD))
+        (top->paint_flags & (PAINT_HAS_PIXEL_FORMAT | PAINT_PIXEL_FORMAT_CHILD)))
         reply->surface_win = top->handle;
 }
 




More information about the wine-cvs mailing list