This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]