Alexandre Julliard : server: Always repaint the whole non-client area if part of it is exposed.

Alexandre Julliard julliard at winehq.org
Tue Sep 4 12:38:36 CDT 2012


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

Author: Alexandre Julliard <julliard at 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)




More information about the wine-cvs mailing list