#### Release 49

Released: 2001-10-03 0056 EDT
Committed to XFree86 CVS: 2001-10-04 1603 EDT
Basis: XFree86 CVS
Download source: no longer distributed
Changes:

- Send ErrorF () output to XWin.log
- Prevent XWin.exe from opening a DOS box on launch
- Enable FatalError () vendor specific function, currently does nothing
- Cleanup winkeybd.c/winTranslateKey (). Replace switch statement with table lookup; table stored in new file winkeybd.h
- Force ShadowGDI engine when Windows color depth is 8 bits and !FullScreen

#### Release 48

Released: 2001-09-02 1252 EDT
Committed to XFree86 CVS: not yet
Basis: XFree86 CVS
Download source: no longer distributed
Changes:

- Revert the default screen initialization process to pre-Release 46 functionality. Document, with comments, what is happening so that I don't accidentally mess it up again.
- Remove the clipboard support introduced with Release 46, as this functionality is now handled by xwinclip. xwinclip will contain all clipboard support until the XWin.exe headers are rewritten to prevent collisions between the X client headers and the X Server headers.
- Remove the Release 47 binary from the servers to prevent people from downloading it, as it is quite broken.

#### Release 47

Released: 2001-08-31 0115 EDT
Committed to XFree86 CVS: not yet
Basis: Release 46
Download source: no longer distributed
Changes:

- Fix broken argument processing in Release 46 when no -screen parameter was passed.
- Remove the Release 46 binary from the servers to prevent people from downloading it, as it is quite broken.

#### Release 46

Released: 2001-08-30 1830 EDT
Committed to XFree86 CVS: not yet
Basis: XFree86 CVS
Download source: no longer distributed
Changes:

- Open the Windows clipboard and dump new clipboard text to XA_CUT_BUFFER0 whenever the Windows clipboard changes. This provides rudimentary one-way Windows to X clipboard integration.
- Remove cruft used to call winInitializeDefaultScreens () before our OsVendorInit () function was working properly.
- Add xc/programs/Xserver/hw/xwin/winerror.c which contains a function that we can use to customize the ErrorF () output. We will use this to redirect ErrorF () messages to a file so that we can start XWin.exe without a console.

#### Release 45

Released: 2001-08-28 1734 EDT
Committed to XFree86 CVS: Prior to release
Basis: XFree86 CVS
Download source: no updates to hw/xwin, only to miext/layer
Changes:

- Transposed arguments in layer CopyClip wrapper caused Mozilla to break. (Keith Packard)

#### Release 44

Released: 2001-08-15 1958 EDT
Committed to XFree86 CVS: 2001-08-16 0424 EDT
Basis: Release 43
Download source: no longer distributed
Changes:

- Bump the client connection limit from 32 to 1024 by passing the square of getdtablesize () to setdtablesize ().

#### Release 43

Released: 2001-08-13 1915 EDT
Committed to XFree86 CVS: 2001-08-16 0424 EDT
Basis: XFree86 CVS
Download source: no longer distributed
Changes:

- Fix, finish, and enable miext/layer support. (Harold Hunt)

#### Release 42

Released: 2001-08-04 1347 EDT
Committed to XFree86 CVS: 2001-08-06 0703 EDT
Basis: XFree86 CVS
Download source: no longer distributed
Changes:

- Add support to handle Ctrl+Alt+Backspace as shutdown signal. (Alexander Gottwald)
- Add command line options to enable/disable each of the two key combos that cause the server to shutdown. (Alexander Gottwald)
- Disable the -ansi build flag. Causes the 'hypot' function to be correctly prototyped, fixing some crashes. (Brian Genisio, Alan Hourihane)
- Fix a namespace conflict in xc/lib/font/Type1/regions.c by renaming 'infinity' to '_infinity'. (Alan Hourihane)

Usage:

- -[no]winkill enables/disables the Alt+F4 server shutdown key combo.
- -[no]unixkill enables/disables the Ctrl+Alt+Backspace server shutdown key combo.
- Default behavior:
  - Alt+F4: enabled
  - Ctrl+Alt+Backspace: disabled

#### Release 41

Released: 2001-07-26 1608 EDT
Committed to XFree86 CVS: 2001-07-31 0547
Basis: XFree86 CVS
Download source: no longer distributed
Changes:

- Abstract the GDI PseudoColor handling into a set of functions for each engine.
- Add support for PseudoColor visuals when using DirectDraw engines in fullscreen 8 bit color modes. Support may never be added for using PseudoColor visuals with DirectDraw engines in windowed mode, as the DirectDrawPalette object has the first ten and the last ten colors reserved in windowed mode. Thus, adding PseudoColor support for windowed DirectDraw modes would be rather difficult.
- Fall back on StaticColor if running a DirectDraw engine in windowed mode.
- Turn off WIN_LAYER_SUPPORT for now, as it was causing the server to crash on exit when running in 8 bit color modes.
- Remove the WIN_PSEUDO_SUPPORT build flag; it is no longer used because the PseudoColor support is stable.

#### Release 40

Released: 2001-07-15 1615 EDT
Committed to XFree86 CVS: 2001-07-25 1031 EDT
Basis: Release 39
Download source: no longer distributed
Changes:

- Remove tests for the return value of MapWindowPoints (), as a return value of zero doesn't necessarily mean that the function failed. Rather, a return value of zero can simply indicate that the from window and to window have the same upper-left hand corner.
- Test the return value of pwinCreateBoundingWindow () in winFinishScreenInitFB (), return FALSE if pwinCreateBoundingWindow () fails.

#### Release 39

Released: 2001-07-02 0503 EDT
Committed to XFree86 CVS: 2001-07-25 1031 EDT
Basis: XFree86 CVS
Download source: no longer distributed
Changes:

- Enable OsVenderInit () in hw/xwin/InitOutput.c by fixing a type in the DDXOSINIT flag in xc/config/cf/cygwin.cf. There as a 'D' missing from the flag. (Harold Hunt)
- Add a default screen in OsVenderInit () if no screen parameters were processed by hw/xwin/InitOutput.c/ddxProcessArgument (). This allows Cygwin/X to startup without any parameters, such as what will happen if ia user runs /usr/X11R6/bin/X. (Harold Hunt)

#### Release 38

Released: 2001-06-29 1717 EDT
Committed to XFree86 CVS: 2001-07-02 0538 EDT
Basis: Release 37
Download source: no longer distributed
Changes:

- Pick up the value of the monitorResolution global variable that is set by passing the '-dpi' parameter to XWin.exe. (Harold Hunt)
- Add file winlayer.c, which provides the source code framework, and intial implementations for RandR and miext/layer support. Unfortunately, the layer support doesn't work correctly when it is enabled. The server just draws a black screen when layer support is enabled. I would appreciate it if someone with layer experience or some extra time on their hands would look into finishing this. (Harold Hunt)
- Make PseudoColor, as opposed to StaticColor, the default visual class when running the GDI engine at 8 bits per pixel. (Harold Hunt)

#### Release 37

Released: 2001-06-26 0001 EDT
Committed to XFree86 CVS: 2001-07-02 0538 EDT
Basis: XFree86 CVS
Download source: no longer distributed
Changes:

- PseudoColor - Fixed the strange colors when redrawing portions of the Cygwin/X window that have been covered then exposed by another Window. (Harold Hunt)
- Stop creating a fake PseudoColor visual in when using a TrueColor display. Emulating PseudoColor on TrueColor is a long standing problem and will be handled by the RandR extension when it stabilizes. (Harold Hunt)
- Move the palette realization code into an engine specific function. (Harold Hunt)
- Move the screen redrawing code into an engine specific function. (Harold Hunt)

#### Release 36

Released: 2001-06-24 1656 EDT
Committed to XFree86 CVS: 2001-07-02 0538 EDT
Basis: Release 35
Download source: no longer distributed
Changes:

- Changed the PseudoColor whitePixel location from 255 to 1, which allows Magic 7.1 to use the default colormap, as opposed to creating its own. This prevents colormap changes when moving into and out of the Magic window, which keeps the window viewable when the focus is in another X window. (Harold Hunt)
- Brought the experimental Native GDI support back from the dead by setting up Pixmap privates and GC privates so that the global device context handles could be gotten rid of. Actually, the global handles were long since gone, as the code that used them was #if 0'd out. I managed to change the drawing logic in the process, so the code now only draws a white window, whereas before it was drawing the X hatched background. (Harold Hunt)
- Rewrote the winFinishScreenInitNativeGDI () procedure so that it defers most of the default setup work to miScreenInit (). (Harold Hunt)
- Added winnativegdi.c, which includes functions to fit the Native GDI support into the current engine framework. (Harold Hunt)

#### Release 35

Released: 2001-06-23 2225 EDT
Committed to XFree86 CVS: 2001-06-25 0703 EDT
Basis: Release 34
Download source: no longer distributed
Changes:

- PseudoColor support is now enabled, albeit with lots of caveats. (Harold Hunt)
  - PseudoColor is only supported by the GDI blitter (-engine 1), so you have to pass the '-engine 1' parameter to XWin.exe.
  - PseudoColor is only supported when Windows is running in 256 color mode (8 bit color); the GDI engine cannot change the Windows display depth, so you must be running Windows in 256 color mode before starting XWin.exe.
  - There are plenty of situations that cause the colors displayed by Cygwin/X to become garbled.
  - Release 35 has been tested only on Windows 2000. There is no reason why Release 35 should not run on the other versions of Windows, but I would appreciate some quick feedback on whether Release 35 functions on Windows 95, 98, Me, and NT 4.0 when running Windows in 256 color mode and passing '-engine 1' to XWin.exe.

#### Release 34

Released: 2001-06-21 1500 EDT
Committed to XFree86 CVS: 2001-06-25 0703 EDT
Basis: Release 33
Download source: no longer distributed
Changes:

- Add desired display depth vs. current display depth as criteria for whether to change the video mode when using a DirectDraw engine in fullscreen. (Harold Hunt)
- Add experimental support for a real PseudoColor visual. Toggled on and off with WIN_PSEUDO_SUPPORT in win.h. (Harold Hunt)
- Add DirectDraw return values to error messages for failed function calls in winshaddd.c and winshadddnl.c. (Harold Hunt)
- The StaticColor colormap only had 20 colors when using the GDI engine. Create the colormap with all 256 colors in the default GDI palette, and set the shadow DIB palette to the default GDI palette so that all colors in the colormap display correctly. In other words, fix the StaticColor support when using the GDI engine. (Harold Hunt)

#### Release 33

Released: 2001-06-19 2255 EDT
Committed to XFree86 CVS: 2001-06-25 0703 EDT
Basis: Release 32
Download source: no longer distributed
Changes:

- Add warning message if the requested DIB or DirectDraw surface will be larger than 16 MB. There is a 16 MB size limit for DIBs in Windows 95, 98, and, presumably, Me. For more information, see MSDN Library->Platform SDK->Graphics and Multimedia Services->Windows GDI->Bitmaps->Bitmap Reference->Bitmap Functions->CreateDIBitmap. (Harold Hunt)
- Re-disable UseSmartScheduler, and add a note to xc/config/cf/cygwin.cf that UseSmartScheduler has terrible performance on Cygwin. (Harold Hunt)
- Add processing for the '-screen' command to handle 'WxH', if it is present. This is in addition to the new 'W H' format. (Harold Hunt)
- Grab a new ddraw.h header from the Wine project. The new header has several fixes to function parameter types, thus preventing compilation warnings, and a few fixes to some structures that may have been causing DirectDraw Surface creation problems. (Harold Hunt)
- Add a check for a NULL hardware device context being returned by BeginPaint in the winBltExposedRegions functions. (Harold Hunt)
- Add error messages and extra sanity checks to winBltExposedRegions functions. (Harold Hunt)
- Remove the ShadowWindowProc functions, as the Cygwin/X ShadowUpdateProcs do not need ShadowWindowProcs. (Harold Hunt)

#### Release 32

Released: 2001-06-17 2256 EDT
Committed to XFree86 CVS: 2001-06-25 0703 EDT
Basis: Release 31
Changes:

- Process keyboard message repeat counts. The repeat count is usually 1 on fast or lightly loaded machines. (Harold Hunt)
- Disable processing of the left and right Windows keys, as they cause focus to be returned to Windows. Some users were reporting that this caused endless keypresses to show up in Cygwin/X. (Harold Hunt)

#### Release 31

Released: 2001-06-15 1953 EDT
Committed to XFree86 CVS: 2001-06-25 0703 EDT
Basis: XFree86 CVS
Changes:

- A set of recent releases changed the '-screen n WIDTHxHEIGHTxDEPTH' parameter to '-screen n width height' and added the '-depth color_bit_depth' parameter. The '-depth color_bit_depth' parameter is only used in fullscreen mode when using a DirectDraw engine. Some of that information was missing from previous change log entries. (Harold Hunt)
- Tell X Server to quit when Alt-F4 key combination is pressed. (Harold Hunt)
- Don't call IDirectDraw_SetDisplayMode if the desired mode is the same as the current mode. This makes fullscreen server startup and switching back and forth between the server and Windows much faster. This also causes the current refresh rate to be used by default in fullscreen mode, rather than the minimal refresh rate that is chosen by DirectDraw when you change the display mode but do not specify a refresh rate. Translation: yay! (Harold Hunt)
- Added '-refresh rate_in_Hz' command line parameter to specify a refresh rate. Specifying an invalid refresh rate will cause the X Server to abort on startup. (Harold Hunt)
- Switch from DirectDraw to DirectDraw2 to support changing the refresh rate. The minimum DirectDraw version required to date has been DirectDraw3, which is not affected by this release; therefore, I don't foresee anyone being forced to upgrade to a new version of DirectDraw. (Harold Hunt)

#### Release 30

Released: 2001-06-13 0027 EDT
Committed to XFree86 CVS: 2001-06-15 0411
Basis: XFree86 CVS
Changes:

- Send release messages for modifier keys (Alt, Ctrl, and Shift) to the X Server when Cygwin/X loses the Windows keyboard focus. This fixes the keyboard problems experienced when locking an NT workstation by pressing Ctrl-Alt-Del when Cygwin/X had the keyboard focus. (Harold Hunt)

#### Release 29

Released: 2001-06-07 2034 EDT
Committed to XFree86 CVS: 2001-06-08 0408 EDT
Basis: XFree86 CVS
Changes:

- Be a little more clever about handling cursor hiding/unhiding when the server has regenerated itself. Server regeneration happens when you log off of an XDMCP session and are subsequently presented with a new XDMCP login screen. This fix addresses the server error message, "Couldn't get last screen privates". (Harold Hunt)

#### Release 28

Released: 2001-06-06 1427 EDT
Committed to XFree86 CVS: 2001-06-06 1406 EDT
Basis: Release 27
Changes:

- Detect when the cursor has crossed into a new X screen without causing a Windows activation event; notify the cursor handling code that the transition has happened. (e.g. Launch two screens, place them side by side, then move the cursor between them; previously, the mouse events from the second screen would cause mouse movement on the first screen, not on the second screen.) (Harold Hunt)
- Improve cursor hiding/unhiding when using multiple screens (e.g. 'XWin -screen 0 640x480 -screen 1 640x480'). Cursor hiding/unhiding with multiple screens is not perfect yet, but using multiple screens is now much more bearable. (Harold Hunt)

#### Release 27

Released: 2001-06-05 2009 EDT
Committed to XFree86 CVS: 2001-06-06 1406 EDT
Basis: Release 26
Changes:

- Added a debug message to display the value returned by a failed call to IDirectDraw_SetDisplayMode ().

#### Release 26

Released: 2001-06-05 0723 EDT
Committed to XFree86 CVS: 2001-06-06 1406 EDT
Basis: XFree86 CVS
Changes:

- Try installing a PseudoColor visual after the real visual to see if this helps programs that require an 8 bit PseudoColor visual. Try running such programs at TrueColor depths (bit depth >= 15) and at StaticColor (bit depth == 8). (Harold Hunt)

#### Release 25

Released: 2001-06-05 0335 EDT
Committed to XFree86 CVS: 2001-06-05 0614 EDT
Basis: Release 24
Changes:

- Added support for 8 bit display modes in both the GDI and DirectDraw based server engines! Currently, 8 bit mode is handled using a StaticColor visual, which means that the values in the color palette cannot be changed by X clients at runtime. That should be okay for most people, as the primary purpose of 8 bit display mode support is to ensure that new users have a good first impression of running Cygwin/X; it is likely that most new users will eventually move on to higher color modes. (Harold Hunt)
- Verify that the desired or current display depth is in the list of supported depths when starting the server. This is now a mostly useless feature, due to 8 bit mode support. (Harold Hunt)