Alexandre Julliard : server: Subtract the current update region from the valid rect when a window client area is changed .

Alexandre Julliard julliard at winehq.org
Tue Jul 17 11:05:34 CDT 2012


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

Author: Alexandre Julliard <julliard at winehq.org>
Date:   Mon Jun 18 17:11:55 2012 +0200

server: Subtract the current update region from the valid rect when a window client area is changed.

---

 server/window.c |    7 +++++++
 1 files changed, 7 insertions(+), 0 deletions(-)

diff --git a/server/window.c b/server/window.c
index 3456e1a..cc4b07b 100644
--- a/server/window.c
+++ b/server/window.c
@@ -1645,6 +1645,13 @@ static void set_window_pos( struct window *win, struct window *previous,
             if (tmp)
             {
                 set_region_rect( tmp, &valid_rects[0] );
+                /* subtract update region since invalid parts of the valid rect won't be copied */
+                if (win->update_region)
+                {
+                    offset_region( tmp, -window_rect->left, -window_rect->top );
+                    subtract_region( tmp, tmp, win->update_region );
+                    offset_region( tmp, window_rect->left, window_rect->top );
+                }
                 if (subtract_region( tmp, win_rgn, tmp )) win_rgn = tmp;
                 else free_region( tmp );
             }




More information about the wine-cvs mailing list