Module: wine Branch: master Commit: 0816a04d92ba5a08f01ae80db2fecacb9ea71122 URL: http://source.winehq.org/git/wine.git/?a=commit;h=0816a04d92ba5a08f01ae80db2...
Author: Alexandre Julliard julliard@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 ); }