In clip_children() don't clip the visible region by children that have

a WS_EX_TRANSPARENT style.
This commit is contained in:
Rein Klazes 2003-11-27 00:56:05 +00:00 committed by Alexandre Julliard
parent 1afef2c732
commit a97c7d2fb3
1 changed files with 2 additions and 6 deletions

View File

@ -86,9 +86,6 @@ static int clip_children( HWND parent, HWND last, HRGN hrgn, int whole_window )
/* first check if we have anything to do */ /* first check if we have anything to do */
if (!(list = WIN_ListChildren( parent ))) return ret; if (!(list = WIN_ListChildren( parent ))) return ret;
for (i = 0; list[i] && list[i] != last; i++)
if (GetWindowLongW( list[i], GWL_STYLE ) & WS_VISIBLE) break;
if (!list[i] || list[i] == last) goto done; /* no children to clip */
if (whole_window) if (whole_window)
{ {
@ -101,10 +98,10 @@ static int clip_children( HWND parent, HWND last, HRGN hrgn, int whole_window )
rectRgn = CreateRectRgn( 0, 0, 0, 0 ); rectRgn = CreateRectRgn( 0, 0, 0, 0 );
for ( ; list[i] && list[i] != last; i++) for (i = 0; list[i] && list[i] != last; i++)
{ {
if (!(ptr = WIN_FindWndPtr( list[i] ))) continue; if (!(ptr = WIN_FindWndPtr( list[i] ))) continue;
if (ptr->dwStyle & WS_VISIBLE) if ((ptr->dwStyle & WS_VISIBLE) && !(ptr->dwExStyle & WS_EX_TRANSPARENT))
{ {
SetRectRgn( rectRgn, ptr->rectWindow.left + x, ptr->rectWindow.top + y, SetRectRgn( rectRgn, ptr->rectWindow.left + x, ptr->rectWindow.top + y,
ptr->rectWindow.right + x, ptr->rectWindow.bottom + y ); ptr->rectWindow.right + x, ptr->rectWindow.bottom + y );
@ -117,7 +114,6 @@ static int clip_children( HWND parent, HWND last, HRGN hrgn, int whole_window )
WIN_ReleaseWndPtr( ptr ); WIN_ReleaseWndPtr( ptr );
} }
DeleteObject( rectRgn ); DeleteObject( rectRgn );
done:
HeapFree( GetProcessHeap(), 0, list ); HeapFree( GetProcessHeap(), 0, list );
return ret; return ret;
} }