#### Release 4.3.0-62

Released: 2004-03-25 2230 EST
Download source: Now available as src package via setup.exe
Changes:

- X-boxed.ico - Use Michael Bax's boxed X icon.
- win.h, winmultiwindowwindow.c, winmultiwindowwm.c, winmultiwindowwndproc.c, winprefs.c - Remove fAlwaysOnTop and PreserveWin32Stack() instead of reinstating winReorderWindowsMultiWindow(), which now inhibits reentries to avoid infinite restacking. Call winReorderWindowsMultiWindow() in appropriate places to keep consistent window Z order even if always-on-top windows are mixed. (Earle F. Philhower III and Takuma Murakami)
- winwindow.h, winmultiwindowwndproc.c, winmultiwindowwm.c, winmultiwindowwindow.c - Always-on-top mods: fix popup menus over AOT windows, AOTs not disappearing, normal windows appearing over AOTs. (Earle F. Philhower III)
- windialogs.c - Exit dialog gets top of Z order, otherwise can be hidden by X apps. (Earle F. Philhower III)
- winmultiwindowwindow.c - Make winRestackWindowMultiWindow empty (except calling the wrapped function). (Takuma Murakami)
- win.h, winblock.c, winglobals.c, winmultiwindowwindow.c, winmultiwindowwndproc.c, winscrinit.c, winshadgdi.c, winwakeup.c - Remove fRestacking and fWindowOrderChanged cache variables and winReorderWindowsMultiWindow function from multiwindow mode. This function was called around 100 times per second. Now the ordering task is done in winTopLevelWindowProc/WM_ACTIVATE handler in event driven manner. Stop propagating WM_ACTIVATEAPP messages to the root window. Simplify winRedrawAllProcShadowGDI. (Takuma Murakami)
- XWin.rc, win.h, winblock.c, windialogs.c, winglobals.c, winmultiwindowwindow.c, winresource.h, winshaddd.c, winshadddnl.c, winshadgdi.c, winwakeup.c, winwndproc.c - Add an About dialog box to the tray icon menu, complete with links to our local change log (/usr/X11R6/share/doc/XFree86-xserv/changelog.html) and documentation on our website. (Harold L Hunt II - CodeWeavers)
- winclipboardwndproc.c - Drop the clipboard failure timeout from 2 seconds to 1 second. (Harold L Hunt II - CodeWeavers)

#### Release 4.3.0-61

Released: 2004-03-25 0055 EST
Download source: Now available as src package via setup.exe
Changes:

- winclipboardwndproc.c, winclipboardxevents.c - Attempt to fix clipboard deadlock that was causing hangs. The nature of the fix was to stop calling XPeekIfEvent since it will block until the specified type of event is seen. Instead, we call XSync to flush output events and wait for them to be processed, then we do our own little loop with a call to select() using a timeout of 3 seconds from when we started (the timeout is adjusted after each call to select()). This should alleviate problems with XPeekIfEvent not returning. Finally, since we can detect whether the SelectionNotify event has arrived now, I added code to paste NULL to the Win32 clipboard if the X11 application never returns any useful clipboard data; this should prevent Win32 applications from freezing when there are problems pasting from X11 to Win32. (Harold L Hunt II - CodeWeavers)

#### Release 4.3.0-60

Released: 2004-03-23 1945 EST
Download source: Now available as src package via setup.exe
Changes:

- winmultiwindowicons.c - Use PixmapBytePad to calculate the length of a line in the icon that miGetImage will return. Our own calculation was not allocating enough memory per line and miGetImage was walking off the end of that memory when Windows is running in 24 bit color and using multi-window mode. (Fabrizio Gennari)
- XWin.rc, winresource.h, wintrayicon.c, winwndproc.c - Change Show/Hide Root Window menu items to a single item with a check box. (Harold L Hunt II - CodeWeavers)

#### Release 4.3.0-59

Released: 2004-03-18 2345 EST
Download source: Now available as src package via setup.exe
Changes:

- winmultiwindowclass.c,winmultiwindowclass.h,winmultiwindowwindow.c - Fix window cascading to not affect popups or menus. (Earle F. Philhower III)

#### Release 4.3.0-58

Released: 2004-03-18 1315 EST
Download source: Now available as src package via setup.exe
Changes:

- winconfig.c - Reset variable 's' after each step. Fixes bug where the argument to -xkblayout applied also to -xkbvariant and -xkboptions. (Alexander Gottwald)
- winshadgdi.c - Fix for the Show Root Window 100% CPU bug. Use lParam in winRedrawAllProcShadowGDI as indicator which window initiated the call since EnumerateThreadWindows is called from WM_PAINT handler too and invalidates the fresh painted window right after painting it. (Alexander Gottwald)
- X.ico - Include Jehan Bing's icon_test9 version, which includes 24 bit as well as 32 bit icons. It is hoped that the 24 bit icons will be used by platforms that do not support the 8 bit alpha channel in the 32 bit icon. (Jehan Bing)

#### Release 4.3.0-57

Released: 2004-03-17 0830 EST
Download source: Now available as src package via setup.exe
Changes:

- winmultiwindowwindow.c - Cascade Win32 windows when -geometry is not specified, using CW_USEDEFAULT, instead of always creating at X(0,0). (Earle F. Philhower III)
- General - Change build script to include this changelog in /usr/X11R6/share/doc/XFree86-xserv/changelog.html. (Harold L Hunt II - CodeWeavers)
- General - Change build script to sort file lists and trim lines that just have a directory but no file; these lists are used for generating the README files. (Harold L Hunt II - CodeWeavers)
- General - Add build-xserv command that pre-processes cygwin.cf and sets the current release number for XWin.exe. (Harold L Hunt II - CodeWeavers)

#### Release 4.3.0-56

Released: 2004-03-15 2050 EST
Download source: Now available as src package via setup.exe
Changes:

- General - Change build system files to stop linking against cygipc and instead use SHM support that is now built into cygwin1.dl. Note that you will now use 'cygserver' to setup cygserver as a Windows Service instead of ipc-daemon2 to enable MIT-SHM support for Cygwin/X. Please see the cygserver documentation (google for it if you have to) for more information. (Harold L Hunt II - CodeWeavers)

#### Release 4.3.0-55

Released: 2004-03-14 0230 EST
Download source: Now available as src package via setup.exe
Changes:

- General - All Cygwin/X packages are now built with a build script that also packages the source code into about 8 source packages. You can now download the source for XFree86-xserv via Cygwin's setup.exe. More instructions on how to compile this source will follow later. (Harold L Hunt II)
- Preferences (Earle F. Philhower III)
  - Added "TRAYICON" parsing to .xwinrc
  - Added "<file>.dll,nnn" icon extraction to take icons from compiled DLL or EXEs
  - Added ",nnn" icon extraction to take icons compiled into XWin.exe
  - Fixed ICONDIRECTORY no longer appended to icon path if it is fully qualified
- Icons - Jehan Bing's almost latest X icon (1st icon in XWin.exe) with alpha channel support. I just realized that I did not get Jehan's x_test8.ico in this release, so I will have to make another release soon. (Jehan Bing)
- Icons - Benjamin Riefenstahl's boxed X icon (2nd icon in XWin.exe). (Benjamin Riefenstahl)

#### Release 4.3.0-54

Released: 2004-03-10 1500 EST
Download source: hw/xwin files not changed since 4.3.0-53
Changes:

- X.ico - Add formats with an alpha channel to smooth the edges of the icon on systems that support alpha channels. This drastically improves the appearance of the icon. (Jehan Bing)

#### Release 4.3.0-53

Released: 2004-03-10 1135 EST
Download source: no longer distributed
Changes:

- winconfig.c - Fix auto-repeat when -kb is passed to XWin.exe. (Harold L Hunt II)

#### Release 4.3.0-52

Released: 2004-03-09 1830 EST
Download source: no longer distributed
Changes:

- winglobals.c, winprefs.c, winshadgdi.c - Replace all calls to EnumWindows by EnumThreadWindows since we need to manipulate only Cygwin/X windows, which are in the same thread. (Takuma Murakami)
- winconfig.c, winconfig.h, winprocarg.c - Display warning message if user uses -xf86config or -keyboard parameters when they are unsupported. (Harold L Hunt II)

#### Release 4.3.0-51

Released: 2004-03-08 2005 EST
Download source: no longer distributed
Changes:

- win.h, winglobals.c, winmultiwindowwindow.c, winshadgdi.c - Restrict multiwindow redrawing region to the intersection between the smallest bounding rectangle of damaged areas and each Windows window. Compare process IDs instead of class names to determine whether a window is a Cygwin/X window or not. (Takuma Murakami)
- InitOutput.c - Print a log message that XF86Config is unsupported with pointer to documentation (FAQ). (Alexander Gottwald)
- winconfig.c - Print the keyboardlayout name supplied from Windows if it was not found. This makes it easier to add those layouts. (Alexander Gottwald)

#### Release 4.3.0-50

Released: 2004-03-03 0815 EST
Download source: no longer distributed
Changes:

- winmultiwindowwindow.c - Fix window adjustment on multiple monitors. (Takuma Murakami)

#### Release 4.3.0-49

Released: 2004-03-02 2230 EST
Download source: no longer distributed
Changes:

- winclipboardwndproc.c, winclipboardwrappers.c, winclipboardxevents.c - Check if clipboard is already open before calling OpenClipboard; if it is open and we own it, then call CloseClipboard in hopes of fixing some reported deadlock situations. (Harold L Hunt II - CodeWeavers)
- InitOutput.c - Add check for multiple instances of XWin trying to run on the same display number. Check for uniqueness among all terminal services sessions. (Takuma Murakami, Harold L Hunt II)
- winvalargs.c - Validate command-line argument combinations; fail when invalid combinations are found, such as "XWin -query foo_host -multiwindow". (Harold L Hunt II - CodeWeavers)
- winerror.c/winMessageBoxF - Add a function that works like printf for Win32 message boxes. (Harold L Hunt II - CodeWeavers)
- winprocarg.c/winLogVersionInfo - Print version, vendor, and mailing list email address in the log file. (Harold L Hunt II - CodeWeavers)
- winprocarg.c/winLogCommandLine - Concatenate the command line into a single string with line breaks at 60 characters. Print the command line in the log file and save it for winMessageBoxF to use during FatalError and ddxUseMsg calls. (Harold L Hunt II - CodeWeavers)
- winerror.c - Make FatalError popup a message box telling the user that a fatal error occurred, where the log file is, what version they are running, what the command line used to start XWin was, etc. (Harold L Hunt II - CodeWeavers)
- InitOutput.c/ddxUseMsg - Popup a message box telling the user that the help information was save to the log file, tell them where the log file is, what the command line used to start XWin was (in case they don't realize they typed -help or an invalid parameter name), etc. (Harold L Hunt II - CodeWeavers)
- Xserver/os/utils.c, xdmcp.c - Replace several calls to ErrorF and exit(1) with calls to FatalError; this allows us to present the user with a popup message box, whereas the exit(1) call prevented us from doing this. (Harold L Hunt II - CodeWeavers)
- InitOutput.c/ddxUseMsg - Document Alexander's new -xkb* parameters. (Harold L Hunt II - CodeWeavers)
- config/cf/cygwin.cf - Specify our own vendor string, version number, and contact information. (Harold L Hunt II - CodeWeavers)

#### Release 4.3.0-48

Released: 2004-02-28 1445 EST
Download source: no longer distributed
Changes:

- winprefs* - Rename the WINMULTIWINDOWPREFS structure to WINPREFS, since it is used even when MultiWindow mode is disabled. (Harold L Hunt II - CodeWeavers)
- winmultiwindowclass.c, winmultiwindowclass.h, winmultiwindowicons.c - Identify these files for renaming since they are not dependent upon MultiWindow mode being enabled. Do not perform the actual rename; instead, write this message in hopes that someone else performs the rename in CVS in a manner that preserves history. (Harold L Hunt II - CodeWeavers)
- win.h, winclipboard.h, winwindow.h - Remove WIN_*_SUPPORT flags. (Harold L Hunt II - CodeWeavers)
- xc/config/cf/cygwin.cf - Remove the inclusion of xfree86.cf; including xfree86.cf forced us to have several lines of code that prevented drivers from being compiled, and forced us to define values for certain #defines so that they would not be overridden. Removing xfree86.cf and restructuring the file led to a decrease in size of about 30%. (Harold L Hunt II - CodeWeavers)
- xc/config/cf/cygwin.cf - Add the build flags removed from win.h in the form BuildXWinFoo. Add defines for the various build options, such as XWIN_FOO, which are added to the defines passed to the compiler when building the server. This allows us to remove the build flags from the hw/xwin headers and it also allows us to refer to the BuildXWin* flags in Xserver/Imakefile, which means that we should no longer have to update that file by hand when enabling and disabling certain features. (Harold L Hunt II - CodeWeavers)
- General - The above changes required extensive rewriting of cygwin.cf, which means that I may have accidentally broken or disabled something that was working previously. Please verify that things work as they should. Note that removing xfree86.cf causes 'xdpyinfo' to report our vendor string as "The X.Org Group" and our vendor release number as "6600"; this is different from the previous vendor of XFree86 with version 4.3.0.1 or some such. (Harold L Hunt II - CodeWeavers)

#### Release 4.3.0-47

Released: 2004-02-25 0715 EST
Download source: no longer distributed
Changes:

- winmultiwindowwindow.c, winmultiwindowwndproc.c - For the topmost Windows window, explicitly raise its X counterpart to the top in Z order to keep correct stacking when there is a minimized window which formerly obscured it. (Takuma Murakami)

#### Release 4.3.0-46

Released: 2004-02-22 1430 EST
Download source: hw/xwin files not changed since 4.3.0-45
Changes:

- 'make clean && make' in Xserver/hw/xwin. The 4.3.0-45 build was busted for some reason. This rebuild fixes some segfaults caused by certain apps, such as xeyes.

#### Release 4.3.0-45

Released: 2004-02-21 1430 EST
Download source: no longer distributed
Changes:

- win.h, winmultiwindowwindow.c, winmultiwindowwndproc.c, winscrinit.c, winwindow.h - Improve move, resize, minimize, maximize, and restore operations on windows in multiwindow mode. Reorganize message/event flow, add new scheme to propagate window changes between Windows and X layers, eliminate bunch of conditional branches and cache variables. A couple of bugs should be fixed. (Takuma Murakami)
- winmouse.c - Properly clear the internal mouse button map when the mouse device is closed. (Takuma Murakami)
- winmultiwindowwndproc.c, winprefs.c, winprefs.h, winwndproc.c - Stop passing customized menus to DefWindowProc. Although it does not cause visible problems so far, it should be inhibited. Apply a mask, which is described in MSDN, for wParam in winTopLevelWindowProc/WM_SYSCOMMAND handler. (Takuma Murakami)
- winconfig.c, winconfig.h, winprocarg.c - Add some xkb settings (rules, model, layout, variant, options) to the commandline options and parse them even with configfile support turned off. (Alexander Gottwald)
- xc/lib/font/fontfile/dirfile.c, encparse.c, fontfile.c - Some more font path checks. (David Dawes)
- winmultiwindowwm.c - Make MultiWindow Window Manager detectable from other wm's as well as allowing it to detect other wm's. (Takuma Murakami)
- xc/lib/font/fontfile/dirfile.c - Fix an exploitable buffer overflow. (Greg MacManus (iDEFENSE Labs))

#### Release 4.3.0-44

Released: 2004-01-28 2000 EST
Download source: no longer distributed
Changes:

- xc/programs/Xserver/os/access.c - Prevent 0.0.0.0 addresses from being sent to the other end of the wire when using Xdmcp. Suggested in the \devel at xfree86 dot org\ mailing list and discussed by many people in that and other forums. Should fix problems when using unconfigured network interfaces and attempting to use '-query' to Xdmcp into a remote machine; this was happening to a lot of users with wireless and wired network cards in laptop computers of which one or the other was usually configured but not both.

#### Release 4.3.0-43

Released: 2004-01-27 0045 EST
Download source: no longer distributed
Changes:

- winmultiwindowwindow.c, winmultiwindowwndproc.c, winwindow.h - Fix for Always On Top handling. (Earle F Philhower III)
- windialogs.c - Center dialog boxes in the desktop window. (Earle F Philhower III)

#### Release 4.3.0-42

Released: 2004-01-16 1500 EST
Download source: no longer distributed
Changes:

- InitOutput.c - Only wait for the clipboard thread to exit if the clipboard client has been started. (Harold L Hunt II)
- winclipboardwrappers.c/winProcQueryTree, winProcEstablishConnection - Unwrap base function and return if clipboard is not enabled. (Harold L Hunt II)
- winclipboardxevents.c/winClipboardFlushXEvents - Call SetClipboardData when aborting; those should allow Win32 apps that are holding the clipboard open to fail gracefully and close the clipboard. (Harold L Hunt II)
- winglobals.c - Remove duplicate declaration of g_fClipboardStarted. (Takuma Murakami)
- winglobals.c - winInitializeGlobals - Reinitialize all clipboard globals. (Harold L Hunt II)
- winmultiwindowwm.c - Change all error messages that occur before a call to pthread_exit to make it clear that the window manager is exiting. (Harold L Hunt II)

#### Release 4.3.0-41

Released: 2004-01-15 0100 EST
Download source: no longer distributed
Changes:

- Clipboard - Try to check all allocated pointers for NULL before dereferencing and try to provide clean failures with error messages. (Harold L Hunt II)
- General - Allow XF86Config support to be turned on or off via the WIN_XF86CONFIG_SUPPORT #define in win.h. This is needed for the xserver tree on freedesktop.org (fd.o) since it does not have the necessary files from the XFree86 DDX (hw/xfree86). (Harold L Hunt II)
- resource.h - Rename resource.h to winresource.h to fix a problem with a header of the same name in the xserver tree on fd.o. (Harold L Hunt II)
- win.h - Wrap #include "layer.h" with #if WIN_LAYER_SUPPORT so that the header will not be included when layer is not being built. (Harold L Hunt II)
- win.h - Remove XWDFile.h, pXWDCmap, and pXWDHeader; these have not been used in ages, if ever. (Harold L Hunt II)
- General - Change all includes for Xlib headers from #include "foo.h" or #include <foo.h> to #include "X11/foo.h" for consistency and to make the build work in the xserver tree on fd.o. (Harold L Hunt II)
- General - Grab the rest of Alexander Gottwald's fixes for build warnings due to malformed prototypes. Add a few more fixes to silence additional warnings along the same lines.
- General - Protect some more XKB stuff with #ifdef XKB. Needed for the build in the xserver tree on fd.o. (Harold L Hunt II)

#### Release 4.3.0-40

Released: 2004-01-12 1945 EST
Download source: no longer distributed
Changes:

- winmultiwindowwindow.c/winReorderWindowsMultiWindow - Fix the problem that XWin crashes when multiple XWin processes exist. (Kensuke Matsuzaki)
- InitOutput.c, winclipboardthread.c, winglobals.c, winmultiwindowwm.c - Move calls to setlocale () from winclipboardthread.c and winmultiwindowwm.c to InitOutput.c and only call it on the first server generation. Remove the g_fCalledSetLocale global variable. Make sure to call XInitThreads () before calling XSupportsLocale (). This may help fix the crash on startup reported by Lester Ingber. (Harold L Hunt II)
- winclipboardwrappers.c/winProcSetSelectionOwner - Reinitialize the local list of selection owners when the server generation changes. This fixes the crash where copying text in X11 followed by copying an image in Win32 followed by an X Server reset causes XWin.exe to segfault; this was reported by Alexander Gottwald. (Harold L Hunt II)
- winmultiwindowwm.c - Move the global variable g_nQueueSize into the WMMsgQueueRec structure so that it is stored per instance of the multi-window window manager thread. (Harold L Hunt II)
- winmultiwindowwm.c/winInitWM - Zero memory allocated for WMProcArgRec, WMInfoRec, and XMsgProcArgRec structures. This should help prevent problems with uninitialized variables in these structures. (Harold L Hunt II)

#### Release 4.3.0-39

Released: 2004-01-12 1445 EST
Download source: no longer distributed
Changes:

- win.h - Silence some build warnings. (Alexander Gottwald)
- winclipboardwndproc.c, winclipboardwrappers.c, winclipboardxevents.c - Silence non-failure run-time messages using for debugging during development. (Harold L Hunt II)

#### Release 4.3.0-38

Released: 2004-01-11 1730 EST
Download source: no longer distributed
Changes:

- winconfig.c/winConfigKeyboard - Fix problem with Japanese keyboard layout being ignored after server reset in XDMCP sessions. (Takuma Murakami)
- winclipboardwndproc.c/winClipboardWindowProc/WM_DRAWCLIPBOARD - Release ownership of the X11 PRIMARY and/or CLIPBOARD selections if an unsupported format is copied to the Win32 clipboard and we currently own the PRIMARY and/or CLIPBOARD selections. This will prevent a silent failure in X11 when pasting after an unsupported item has been copied to the Win32 clipboard; instead, X11 apps should either paste from an another owned selection (xterm does this) or they might report that the clipboard is empty. (Harold L Hunt II)
- winclipboardwrappers.c - Initialize g_iOwners to None. (Harold L Hunt II)
- winclipboardwrappers.c/winProcSetSelectionOwner - Fix a bug in the call to MakeAtom for the CLIPBOARD atom that was causing MakeAtom to return a failure code instead of the CLIPBOARD atom; this caused the owner window for the CLIPBOARD atom to never be saved by winProcSetSelectionOwner. (Harold L Hunt II)