From: Jinoh Kang jinoh.kang.kr@gmail.com
--- server/window.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/server/window.c b/server/window.c index 914d376a44a..7dcce310959 100644 --- a/server/window.c +++ b/server/window.c @@ -1616,6 +1616,8 @@ static void validate_parents( struct window *child ) }
+#define WINE_RDW_NESTED 0x80000000U + /* add/subtract a region (in client coordinates) to the update region of the window */ static void redraw_window( struct window *win, struct region *region, int frame, unsigned int flags ) { @@ -1688,7 +1690,7 @@ static void redraw_window( struct window *win, struct region *region, int frame, if (rect_in_region( child_rgn, &child->window_rect )) { offset_region( child_rgn, -child->client_rect.left, -child->client_rect.top ); - redraw_window( child, child_rgn, 1, flags ); + redraw_window( child, child_rgn, 1, flags | WINE_RDW_NESTED ); } } free_region( child_rgn ); @@ -2985,7 +2987,7 @@ DECL_HANDLER(redraw_window) } }
- redraw_window( win, region, (flags & RDW_INVALIDATE) && (flags & RDW_FRAME), flags ); + redraw_window( win, region, (flags & RDW_INVALIDATE) && (flags & RDW_FRAME), flags & ~WINE_RDW_NESTED ); if (region) free_region( region ); }