server: Validate the parents every time we paint a window instead of only on RDW_UPDATENOW.

This commit is contained in:
Alexandre Julliard 2007-08-23 20:22:30 +02:00
parent 0c4f152ec7
commit 149cbb1b60
2 changed files with 5 additions and 7 deletions

View file

@ -160,6 +160,9 @@ static BOOL redraw_window_rects( HWND hwnd, UINT flags, const RECT *rects, UINT
{
BOOL ret;
if (!(flags & (RDW_INVALIDATE|RDW_VALIDATE|RDW_INTERNALPAINT|RDW_NOINTERNALPAINT)))
return TRUE; /* nothing to do */
SERVER_START_REQ( redraw_window )
{
req->window = hwnd;

View file

@ -1051,7 +1051,7 @@ static void validate_children( struct window *win )
}
/* validate the update region of a window on all parents; helper for redraw_window */
/* validate the update region of a window on all parents; helper for get_update_region */
static void validate_parents( struct window *child )
{
int offset_x = 0, offset_y = 0;
@ -1137,12 +1137,6 @@ static void redraw_window( struct window *win, struct region *region, int frame,
inc_window_paint_count( win, -1 );
}
if (flags & RDW_UPDATENOW)
{
validate_parents( win );
flags &= ~RDW_UPDATENOW;
}
/* now process children recursively */
if (flags & RDW_NOCHILDREN) return;
@ -1982,6 +1976,7 @@ DECL_HANDLER(get_update_region)
if (reply->flags & (UPDATE_PAINT|UPDATE_INTERNALPAINT)) /* validate everything */
{
validate_parents( win );
validate_whole_window( win );
}
else