The XFree86-xserv-4.2.0-39 package has been updated in the Cygwin distribution.
Changes:
1) winmultiwindowwindow.c/winScaleXBitmapToWindows() - Clear the bits in the alpha channel of the converted 32 bpp bitmap because it was causing problems with window icons for certain display drivers. Most notably, display drivers from ATI were exhibiting these problems. (Earle F. Philhower III)
2) wincursor.c/winPointerWarpCursor() - Discard the first cursor warp message, since this is just X putting the mouse cursor in the center of the screen, which is undesirable in Windows. (Earle F. Philhower III, Harold L Hunt II)
3) windialogs.c/winDisplay[Exit|DepthChange]Dialog() - Add calls to drop the minimize and maximize buttons from the Exit Confirmation and Depth Change dialog boxes, while preserving the icon on the upper left hand corner of the dialog window. (Earle F. Philhower III)
4) Convert X application icons set in WM_HINTS from XPMs to Windows BMPs using an internal algorithm. Earle, Ralf, and Colin worked together on this one with coding, suggesting ideas, and testing. The end result is, as they say, very nearly perfect. Each top-level X window is now given its own class that has an icon associated with it. The icon can be even changed while the application is running and this is properly handled. Icons are properly freed when a window and its associated class are destroyed. This entry encompasses a flurry of emails and patches that I cannot possibly recount here; hopefully no one feels slighted by this brief summary. (Earle F. Philhower III, Ralf Habacker, Colin Harrison)
5) Set XIconSizes() to the Windows approved 16, 32, and 48. It doesn't seem to be looked at by anything, but it is in the XLib documents as something a WM should set. (Earle F. Philhower III)
6) Removed several misc compile warnings. (Earle F. Philhower III)
7) winmultiwindowwindow.c/winTopLevelWindowProc() - Add a call to winKeybdReleaseKeys () in WM_KILLFOCUS. This fix stops the phantom key presses that people were seeing. The example here would be to launch an xterm, then launch another xterm from that xterm. Type ``exit'' in the first xterm and press enter. The enter keydown message is processed by the second xterm, but the keyup is never processed so it got sent repeatedly to the root-level message loop (which performs all keyboard processing), causing phantom key presses to show up in any X app that currently had the focus. At least, I think that is that the problem was. An interim solution was to press and release the enter key, which would cause a keydown/keyup message combo to be sent, thus ending the crazy looping. This fix pops all keys that are pressed when the current X app looses the keyboard focus. Colin suggested this, Earle move the location of the call to the proper place. (Colin Harrison, Earle F. Philhower III)
8) XWin.rc - Change the Exit Confirmation and Depth Change dialog boxes to be centered by adding the DS_CENTER flag to the STYLE attribute. (Biju G C, Harold L Hunt II)
9) winmultiwindowwindow.c/winTopLevelWindowProc() - Let DefaultWindowProc() handle the Alt+F4 key combo in the WM_*KEYDOWN messages. This allows a user to close a top-level X window (which has an associated Windows window) by pressing Alt+F4. Note that this happens regardless of the -[no]winkill command-line parameter. This is the desired behavior since -[no]winkill should only affect the behavior of the root-level window, not the individual X Client windows. (Biju G C, Harold L Hunt II)
10) winwndproc.c/winWindowProc() - Define a WM_GIVEUP message that calls GiveUp(); remove the GiveUp() call from WM_CLOSE and replace it with a call to winDisplayExitDialog(), which displays the Exit Confirmation dialog box. This only makes sense in conjunction with the next change log entry. (Biju G C, Harold L Hunt II)
11) windialogs.c/winExitDlgProc()/WM_COMMAND/ID_OK - Pass WM_GIVEUP to PostMessage() instead of passing WM_CLOSE. This patch causes the end result that, in MultiWindow mode, selecting Close from the system menu for non-root-level Windows window causes that particular X Client to be killed. The previous result was that the XWin.exe process was exited without displaying the Exit Confirmation dialog box. This must have been a frustrating situation indeed and it makes this bug a marvelous catch on Biju's part. NOTE: The system menu can be opened by right clicking on the title bar, or by left clicking the icon in the upper left-hand corner of the app window, or by right clicking on the application entry in the task bar. (Biju G C, Harold L Hunt II)
12) windialogs.c/winDisplay(Exit)|(ChangeDepth)Dialog() - Call SetForegroundWindow() if the dialog box has already been created. This pulls the dialog box to the foreground if it has been buried by other windows. It is legitimate to do this here because we are responding to user input of some sort when this function gets called. (Harold L Hunt II)
13) XWin.rc - Add the extended style WS_EX_DLGMODALFRAME and the normal style WS_DLGFRAME to the Exit Confirmation dialog box in an attempt to stop the dialog box from being listed in the task bar, which was reported by one user. This task bar listing has been negatively confirmed in Windows 2000 and Windows XP, but it may be happening in other versions of Windows. Of course, this could have been a reference to the fact that the dialog is present in the Alt+Tab list. However, that is the desired behavior and will not be changed (how else could you get back to that dialog box?). (Biju G C, Harold L Hunt II)
-- Harold Hunt
To update your installation, click on the "Install Cygwin now" link on the http://cygwin.com/ web page. This downloads setup.exe to your system. Save it and run setup, answer the questions and pick up 'XFree86-xserv' from the 'XFree86' category. You may need to click the "Full" button if it doesn't show up.
Note that downloads from sources.redhat.com (aka cygwin.com) aren't allowed due to bandwidth limitations. This means that you will need to find a mirror which has this update.
In the US, ftp://archive.progeny.com/cygwin/ is a reliable high bandwidth connection.
In Japan, ftp://ftp.u-aizu.ac.jp/pub/gnu/gnu-win32/ is usually up-to-date.
In DK, http://mirrors.sunsite.dk/cygwin/ is usually up-to-date.
If one of the above doesn't have the latest version of this package you can either wait for the site to be updated or find another mirror.
Please send questions or comments to the Cygwin/XFree86 mailing list at: [EMAIL PROTECTED] . If you want to subscribe go to: http://cygwin.com/lists.html I would appreciate if you would use this mailing list rather than emailing me directly. This includes ideas and comments about the setup utility or Cygwin/XFree86 in general.
If you want to make a point or ask a question the Cygwin/XFree86 mailing list is the appropriate place.
