Clip children/siblings patch.
Rein Klazes
rklazes at xs4all.nl
Mon Nov 24 12:57:53 CST 2003
Hi,
Another fix for Agent 2.0 beta.
Some buttons on Agent's preference dialogs did not display. Found that
it is caused by the buttons having a WS_CLIPSIBLINGS style and therefore
were clipped by a group with a WS_EX_TRANSPARENT ex-style. Testing shows
that windows excludes child windows with this ex-style from the
CLIPSIBLINGS clipping and also if their parents have WS_CLIPCHILDREN
style.
Changelog:
dlls/x11drv : winpos.c
In clip_children() don't clip the visible region by children
that have a WS_EX_TRANSPARENT style.
Rein.
--
Rein Klazes
rklazes at xs4all.nl
-------------- next part --------------
--- wine/dlls/x11drv/winpos.c 2003-11-22 19:26:02.000000000 +0100
+++ mywine/dlls/x11drv/winpos.c 2003-11-24 19:34:47.000000000 +0100
@@ -87,7 +87,8 @@
/* first check if we have anything to do */
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 ((GetWindowLongW( list[i], GWL_STYLE ) & WS_VISIBLE) &&
+ !(GetWindowLongW( list[i], GWL_EXSTYLE ) & WS_EX_TRANSPARENT)) break;
if (!list[i] || list[i] == last) goto done; /* no children to clip */
if (whole_window)
@@ -104,7 +105,7 @@
for ( ; list[i] && list[i] != last; i++)
{
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,
ptr->rectWindow.right + x, ptr->rectWindow.bottom + y );
More information about the wine-patches
mailing list