- The Shift and Caps Lock and Num Lock keys' functionality was reversed when a USB keyboard was unplugged while in Caps Lock or Num Lock mode. Unplugging the keyboard with Caps Lock or Num Lock enabled and later plugging it back in led to incorrect modifier state on the keyboard. Now, the correct modifier state is applied when a keyboard is attached. The discrepancy between the actual and logical status of modifiers no longer occurs.
- Connecting to a remote machine of different endianness architecture using the X Display Manager Control Protocol (XDMCP) could cause unexpected termination of the X server when the data length in the XkbSetGeometry request was erroneously swapped twice, and an incorrect value was produced. With this update, the data is swapped only once when appropriate, ensuring the use of correct data length. Connecting to remote machines no longer causes X server crashes in this situation.
- Due to a regression, the "Always" mode of the Xorg server's backing store (-bs) option was not functional, and applications expecting the retention of window content when it was unmapped did not work. The mode has been implemented, and applications that require it now work.
- The keyboard remained in Caps Lock or Num Lock mode even after the keys were pressed again to change input mode. Now, the Caps Lock and Num Lock functions no longer remain active after pressing the keys to deactivate them.
- The Xephyr server's 8-bit pseudocolor emulation incorrectly maintained only one colormap for the entire server. When running Xephyr at 8 bpp with multiple screens, only one screen displayed correct colors. Xephyr has been amended to maintain one colormap per screen and now displays correct colors on all screens.
- The X server package was missing requirements for basic drivers such as vesa, void, or evdev. With this update, installing the X server automatically pulls the basic required drivers as well.
- The fix for CVE-2014-8092 (RHSA-2014:1983) introduced a type conversion invalid in C++, preventing a C++ application, such as TigerVNC, to be compiled using the X server source files. Now, the header file uses an explicit cast for the type conversion, and C++ applications using X server source files can be compiled.
- The string format used in error messages was not supported by the X server. When connecting to an unwilling XDMCP server, an error, a backtrace, and termination of the X server occurred instead of displaying an error message. Now, the X server supports the string format, connecting to an unwilling XDMCP server no longer causes a crash, and an error message is displayed prior to exiting cleanly.
- The X Window System failed to load on reboot when the Xinerama extension and the SELinux module in enforcing mode were enabled. It kept attempting to load the GUI and went on in a loop. Now, the X Window System loads as expected in this situation.
- Passing a request containing zero height to the XPutImage() function could cause a "division by zero" error in the X server. Now, the X server checks the height value and avoids division by zero. The requests no longer cause errors.
- The xvfb-run script now accepts the "-a" argument to automatically select an unused display number. Users no longer have to choose one themselves, which was difficult and error-prone when running from automated scripts. The Xvfb server can be used for headless automation setups without the need to specify a display number explicitly.