Sorry for all of those who were looking forward for MB_TASKMODAL support, but 
I fixed my problem without having to implement that.

The problem came from SetWindowPos@dlls/x11drv/winpos.c which didn't react 
properly to the SWP_NOACTIVATE flag.

I attached a patch to this e-mail, comments are welcome.

Laurent Pinchart
--- dlls/x11drv/winpos.c	Thu Nov  8 00:19:42 2001
+++ dlls/x11drv/winpos.c	Tue Dec 25 16:57:58 2001
@@ -715,13 +715,24 @@
         }
     }
 
+    /* (From MSDN) SWP_NOACTIVATE:
+     * Does not activate the window. If this flag is not set, the window is activated
+     * and moved to the top of either the topmost or non-topmost group (depending on
+     * the setting of the hWndInsertAfter parameter).
+     *
+     * It seems to imply that if set, the window z-order is not changed, and thus to
+     * imply SWP_ZORDER.
+     */
+    if (winpos->flags & SWP_NOACTIVATE)
+	winpos->flags |= SWP_NOZORDER;
+
     /* Check hwndInsertAfter */
 
     /* fix sign extension */
     if (winpos->hwndInsertAfter == (HWND)0xffff) winpos->hwndInsertAfter = HWND_TOPMOST;
     else if (winpos->hwndInsertAfter == (HWND)0xfffe) winpos->hwndInsertAfter = HWND_NOTOPMOST;
 
-      /* FIXME: TOPMOST not supported yet */
+    /* FIXME: TOPMOST not supported yet */
     if ((winpos->hwndInsertAfter == HWND_TOPMOST) ||
         (winpos->hwndInsertAfter == HWND_NOTOPMOST)) winpos->hwndInsertAfter = HWND_TOP;
 

Reply via email to