On Fri, 20 Oct 2000 09:39:19 -0500, you wrote:


> -in SWP_DoNCCalcSize, When determining if the client area
>  changed, use values relative to the window itself, not its parent.
> 

Unforunately this last change: 

--- /opt/cvs-commit/wine/windows/winpos.c       2000/10/13 17:07:08
1.74
+++ /opt/cvs-commit/wine/windows/winpos.c       2000/10/23 00:36:06
1.75
@@ -2513,9 +2533,14 @@
 
          /* FIXME: WVR_ALIGNxxx */
 
-         if( pNewClientRect->left != wndPtr->rectClient.left ||
-             pNewClientRect->top != wndPtr->rectClient.top )
+         /* check if client area moved relative to the window */
+         if ( ( (wndPtr->rectClient.left - pNewClientRect->left) != 
+                (wndPtr->rectWindow.left - pNewWindowRect->left) ) ||
+              ( (wndPtr->rectClient.top - pNewClientRect->top) != 
+                (wndPtr->rectWindow.top - pNewWindowRect->top) ) )
+         {   
              pWinpos->flags &= ~SWP_NOCLIENTMOVE;
+         }
 
          if( (pNewClientRect->right - pNewClientRect->left !=
               wndPtr->rectClient.right - wndPtr->rectClient.left) ||

breaks Agent-32. Of the three panes making the main windows client
area, only one is visible apparently overlaying the other two. 
 
I traced the cause of this that for these windows (client area is
moved, bot not relative to the window) as a result form the lacking
SWP_NOCLIENTMOVE do not get a WM_MOVE message sent in DefWindowProc().

>From the comments in the code I understand that SWP_NOCLIENTMOVE is an
(undocumented) windows bit. Since the definition of it was changed by
the patch, I wonder if it was verified that the change reflects real
windows behaviour?

Rein.
-- 
Rein Klazes
[EMAIL PROTECTED]


Reply via email to