Module: wine Branch: master Commit: a76f60d14ef8f30063219f9b333d88e24f7d5865 URL: http://source.winehq.org/git/wine.git/?a=commit;h=a76f60d14ef8f30063219f9b33...
Author: Alexandre Julliard julliard@winehq.org Date: Tue Sep 4 13:37:46 2012 +0200
server: Always repaint the whole non-client area if part of it is exposed.
---
server/window.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-)
diff --git a/server/window.c b/server/window.c index fefe1ac..b6fcde0 100644 --- a/server/window.c +++ b/server/window.c @@ -1631,6 +1631,14 @@ static void set_window_pos( struct window *win, struct window *previous, client_rect->bottom - old_client_rect.bottom != y_offset || !valid_rects || memcmp( &valid_rects[0], client_rect, sizeof(*client_rect) )); + /* if part of the non-client area was exposed, consider it changed */ + if (exposed_rgn && !frame_changed) + { + get_region_extents( exposed_rgn, &rect ); + offset_rect( &rect, client_rect->left, client_rect->top ); + frame_changed = (rect.left < client_rect->left || rect.top < client_rect->top || + rect.right > client_rect->right || rect.bottom > client_rect->bottom); + } }
if (frame_changed || client_changed)