In RDW_ValidateParent, get rid of the parent update region if it is
empty after the validation, to avoid a useless WM_PAINT.
This commit is contained in:
parent
46f11eda58
commit
09791702e0
@ -379,7 +379,15 @@ static void RDW_ValidateParent(WND *wndChild)
|
|||||||
ptOffset.x = rect.left - rectParent.left;
|
ptOffset.x = rect.left - rectParent.left;
|
||||||
ptOffset.y = rect.top - rectParent.top;
|
ptOffset.y = rect.top - rectParent.top;
|
||||||
OffsetRgn( hrg, ptOffset.x, ptOffset.y );
|
OffsetRgn( hrg, ptOffset.x, ptOffset.y );
|
||||||
CombineRgn( wndParent->hrgnUpdate, wndParent->hrgnUpdate, hrg, RGN_DIFF );
|
if (CombineRgn( wndParent->hrgnUpdate, wndParent->hrgnUpdate, hrg, RGN_DIFF ) == NULLREGION)
|
||||||
|
{
|
||||||
|
/* the update region has become empty */
|
||||||
|
DeleteObject( wndParent->hrgnUpdate );
|
||||||
|
wndParent->hrgnUpdate = 0;
|
||||||
|
wndParent->flags &= ~WIN_NEEDS_ERASEBKGND;
|
||||||
|
if( !(wndParent->flags & WIN_INTERNAL_PAINT) )
|
||||||
|
add_paint_count( wndParent->hwndSelf, -1 );
|
||||||
|
}
|
||||||
OffsetRgn( hrg, -ptOffset.x, -ptOffset.y );
|
OffsetRgn( hrg, -ptOffset.x, -ptOffset.y );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user