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;
}