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

Earle F. Philhower III earle@ziplabel.com
Fri Mar 19 07:16:00 GMT 2004


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...)

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...

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.

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...)

-Earle F. Philhower, III
  earle@ziplabel.com
  cdrlabel - ZipLabel - FlpLabel
  http://www.cdrlabel.com



More information about the Cygwin-xfree mailing list