At 09:49 AM 9/15/00 -0400, you (Stephane Lussier) wrote:
>Here's a patch trying to implement the TOPMOST feature of Windows. As some
>of you probably know, there's no way to set a window as topmost in X. So I
>add to do a couple of tricky things to emulate this feature in Wine. Also
>with this patch, a window will be topmost only relatively to other Wine
>windows.
<snip>

I have not looked at your patch but it breaks one of my test apps; it seems
that an uncaring programmer asked to set topmost a  'child of the 'desktop'.
I guess that what he wanted was just to set the window at the top
of the z-order.

Does the following patch work also with your app(s) ?

Hmm, I see that I have also a problem with another test app; a config dialog
that used to come before the main window now hides itself behind;
it's a Borland test app - I guess that my licence includes the right
to distribute binaries, so I can send it to you if you're interested
(it's a fascinating game known as 'swat', really an apt symbol of
my activity with Wine :-))

Gerard

--- winpos.c.orig       Fri Sep 15 17:32:57 2000
+++ winpos.c    Fri Sep 15 18:00:31 2000
@@ -2709,8 +2709,11 @@
           if ( (hwndInsertAfter == HWND_TOPMOST) ||
                (wnd && (wnd->dwExStyle & WS_EX_TOPMOST) && bChangePos) )
           {
-            TRACE("Setting topmost flag for hwnd=%x\n", wndPtr->hwndSelf);
-            wndPtr->dwExStyle |= WS_EX_TOPMOST;
+            if (!(wndPtr->dwStyle & WS_CHILD))
+            {
+                TRACE("Setting topmost flag for hwnd=%x\n", wndPtr->hwndSelf);
+                wndPtr->dwExStyle |= WS_EX_TOPMOST;
+            }
             if (hwndInsertAfter == HWND_TOPMOST)
               hwndInsertAfter = HWND_TOP;
           }                     

Reply via email to