Changes to multiwindow mode and always-on-top (ping Takuma)

Harold L Hunt II huntharo@msu.edu
Fri Mar 19 07:42:00 GMT 2004


Earle,

Earle F. Philhower III wrote:

> Hi all,
> 
> I've been hacking away fixing up the support for always-on-top
> mode which seems to have been broken since the upgrades Takuma
> did about 3 weeks ago (~v1.1.6.2? of multiwndproc, etc).  Minimized
> always-on-top windows never disappear from in front of other
> X windows in all the tests I've tried.  And when a non-aot
> window is created on top of an a-o-t one, it is popped to the
> top of the X window stack, even if there is an a-o-t window
> in Win32 space above it.  It's as if a chunk of the window
> below the aot window is showing through, and a real pain.  (It's
> caused by XRaiseWindow()ing a window that's not really at the
> top of the Win32 stack...)

Yup, Takuma knew there were bugs, but the new code is so much more 
efficient (the old code was performing lots of operations during our 
block and wakeup handlers, which get called hundreds of times per 
second) that I told him to leave it there for a few weeks until we could 
figure out if we could fix it and keep the performance improvement.

> I've cleaned all this up in my local copy, and made Emacs/xterm
> menus work properly in a-o-t mode (they don't disappear!) without
> stepping on any of Takuma's changes.  However, I can't get
> minimization to work without turning off the Win32 a-o-t setting
> on the window during the minimize...

Hmm... if you have it mostly fixed, then check it in... Takuma is 
currently burning cycles trying to fix this also but I don't think he 
has gotten far.  I think he will appreciate having a little help :)

> The old behavior was to copy the current a-o-t state to a private
> flag in pWinPriv on a minimize, remove the a-o-t bit from the window,
> and on a restore set the a-o-t flag back on the Win32 window if so
> cached.
> 
> If I put this flag and behavior back I can get things working
> 100% AFAICT:  a-o-t windows minimized from the taskbar, the
> system menu, or the button disappear.

That sounds good.  Takuma was talking about re-adding the fRestacking 
flag... is that the flag you are talking about?

> Takuma, if you're reading the list, can you give some insight as to
> why you took out the old private flag?  (I agree it should be
> cached in the wndproc on the WM_SIZE message, not the SC_* menu
> handler where it was, that's where I've got it placed presently,
> and it now works for all different methods of minimizing a window
> I can think of...)

My guess is that he will agree... but I imagine he'll reply soon anyway.

Harold



More information about the Cygwin-xfree mailing list