get_visible_region: do not clip out siblings of the top-level window.

This commit is contained in:
Alexandre Julliard 2004-07-06 23:54:49 +00:00
parent 95012151f9
commit 3365eb7a2d

View File

@ -522,7 +522,7 @@ static struct region *get_visible_region( struct window *win, struct window *top
/* create a region relative to the window itself */
if ((flags & DCX_PARENTCLIP) && win->parent)
if ((flags & DCX_PARENTCLIP) && win != top && win->parent)
{
rectangle_t rect;
rect.left = rect.top = 0;
@ -562,14 +562,13 @@ static struct region *get_visible_region( struct window *win, struct window *top
if (top && top != win && (tmp = create_empty_region()) != NULL)
{
offset_region( region, offset_x, offset_y ); /* make it relative to parent */
while (win->parent)
while (win != top && win->parent)
{
if (win->style & WS_CLIPSIBLINGS)
{
if (!clip_children( win->parent, win, region, 0, 0 )) goto error;
if (is_region_empty( region )) break;
}
if (win == top) break;
/* clip to parent client area */
win = win->parent;
offset_x += win->client_rect.left;