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