James,

I wasn't able to reproduce your problem, I've tried with UltraEdit and
HyperTerminal.

Anyway, with what you suggest in your previous mail, I think I know where
the problem is coming from.

Instead of not doing the Z ordering when the application ask to place the
window under a zero-sized window. Now, I found the window above the
zero-sized window, and use this window instead.

This patch makes the code a little more complex, but it's better than the
present code.

Could you try the patch, and let me know if it's fixing your problem.


        Stephane Lussier
        Macadamian Technologies

> -----Original Message-----
> From: [EMAIL PROTECTED]
> [mailto:[EMAIL PROTECTED]]On Behalf Of James Abbatiello
> Sent: Tuesday, August 08, 2000 10:04 PM
> To: [EMAIL PROTECTED]
> Subject: Re: Window drawing
>
>
> I'm seeing the same problem here (running managed under kwm).
> The following programs now have their main windows appear behind
> everything else:
> HyperTerminal v595160, Netscape v4.61, UltraEdit v7.10b, Winamp v2.64,
> and Windows Media Player v6.4.07.1112.  The problem seems to be the
> following patch:
>
> ----------------------------
> revision 1.54
> date: 2000/08/06 03:35:24;  author: julliard;  state: Exp;  lines: +64
> -12
> Stephane Lussier <[EMAIL PROTECTED]>
> Top level windows with 0 width or height are created with a size of 1x1
> in
> the X11 driver. I've added some code to make sure those windows are
> never
> mapped while the size <= 0.
> ----------------------------
>
> Specifically, the portion:
> @@ -635,11 +677,13 @@
>             stack[1] = X11DRV_WND_FindDesktopXWindow( winposPtr );
>
>             /* for stupid window managers (i.e. all of them) */
> -
> -           TSXRestackWindows(display, stack, 2);
> -           changeMask &= ~CWStackMode;
> -
> -              WIN_ReleaseWndPtr(insertPtr);
> +
> +          if (!X11DRV_WND_IsZeroSizeWnd(insertPtr))
> +          {
> +               TSXRestackWindows(display, stack, 2);
> +               changeMask &= ~CWStackMode;
> +          }
> +          WIN_ReleaseWndPtr(insertPtr);
>           }
>       }
>       if (changeMask && X11DRV_WND_GetXWindow(winposPtr))
>
> Moving the line
>       changeMask &= ~CWStackMode;
> back outside of the if statement restores the previous behavior for all
> of the above apps.  I doubt that this is the correct fix though.  Would
> the author or someone knowledgeable in the ways of X care to comment?
>
> --
> James Abbatiello
>
>
> Christopher Morgan wrote:
> >
> > Sawfish(0.30 I think).  No problem really, feel free to email with any
> > other questions :-)
> >
> > Chris
> >
> > On Tue, 8 Aug 2000, Andreas Mohr wrote:
> >
> > > On Mon, Aug 07, 2000 at 11:08:13PM -0500, Chris Morgan wrote:
> > > > In managed windows do appear.  It appears that the zorder
> is being set
> > > > incorrectly(for my wm).  I didn't originally see the window
> as my xterms covered
> > > > the entire desktop and the window was behind the xterms :-)
> > > "for my wm" -- very descriptive, thank you.
> > >
> > > Andreas Mohr
> > >
> > >
>
>

restack.diff

Reply via email to