Module: wine Branch: master Commit: cae37b18fd7462bfe965cb7689dcf2629055da6a URL: http://source.winehq.org/git/wine.git/?a=commit;h=cae37b18fd7462bfe965cb7689...
Author: Ulrich Czekalla ulrich.czekalla@utoronto.ca Date: Thu Jan 25 08:57:14 2007 -0500
wineserver: Validate the children of windows being hidden.
Prevents paint_count values from being skewed when hiding windows.
---
server/window.c | 15 +++++++++++++++ 1 files changed, 15 insertions(+), 0 deletions(-)
diff --git a/server/window.c b/server/window.c index 9fee775..c526185 100644 --- a/server/window.c +++ b/server/window.c @@ -1037,6 +1037,20 @@ static void validate_whole_window( struc }
+/* validate a window's children so that we don't get any further paint messages for it */ +static void validate_children( struct window *win ) +{ + struct window *child; + + LIST_FOR_EACH_ENTRY( child, &win->children, struct window, entry ) + { + if (!(child->style & WS_VISIBLE)) continue; + validate_children(child); + validate_whole_window(child); + } +} + + /* validate the update region of a window on all parents; helper for redraw_window */ static void validate_parents( struct window *child ) { @@ -1370,6 +1384,7 @@ static void set_window_pos( struct windo { /* clear the update region since the window is no longer visible */ validate_whole_window( win ); + validate_children( win ); goto done; }