Minimising window with "Always on top" attribute leaves contents in underlying window

Earle F. Philhower III earle@ziplabel.com
Mon Jan 26 04:08:00 GMT 2004


Hi Mike...
At 08:29 AM 1/25/2004 +0000, Mike wrote:
>I'm using 4.3.0-42 and have noticed that the following minor bug in
>multi-window operation when running on Win2K and WinXPPro:
>Two windows (terminal or otherwise) are overlapped and the topmost one has
>it's "Always on top" attribute set (by right-clicking on the windows title
>bar). The topmost window is then minimised, leaving a copy of its contents
>on the desktop, viewable by moving the remaining window over the portion of
>the desktop previously occupied by the other window.

It's been a while since I submitted a patch, but since this problem
is due to my code I'll be nice and fix it.  Basically, whenever we get
a WM_SYSCOMMAND:SC_MINIMIZE we need to disable the HWND_TOPMOST attribute
and let the X system recognize it.  On a WM_SYSCOMMAND:SC_RESTORE we just
need to reset that attribute to what it was before.

I'm attaching a patch *against the CVS -r CYGWIN tree* because I cannot
get the XWin-4.3.0-42 source available on
http://xfree86.cygwin.com/devel/server/changelog.html
to compile properly, whereas the freedesktop CVS goes thru without a hitch.

It adds a boolean fAlwaysOnTop to the window privates;  caches the AOT value
on a WM_SYSCOMMAND:SC_MINIMIZE and removes top-z attributes from the window;
restores the AOT value on a WM_SYSCOMMAND:SC_RESTORE; and changes the
WM_WINDOWPOSCHANGED event handler to always allow the Windoze DefWindowProc()
to be called (necessary for the changes I did, and doesn't seem to have any
negative effects).


-Earle F. Philhower, III
  earle@ziplabel.com
  cdrlabel - ZipLabel - FlpLabel
  http://www.cdrlabel.com
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fixaot.patch
Type: application/octet-stream
Size: 1913 bytes
Desc: not available
URL: <http://cygwin.com/pipermail/cygwin-xfree/attachments/20040126/c7479688/attachment.obj>


More information about the Cygwin-xfree mailing list