Due to a problem in the gnome-screensaver application that caused screen resume failures, the X server was set to stop proxying the lid state in output connectivity. As a consequence, when using certain configurations, such as a dual head setup with span mode, the screen configuration was not changed to use only the external screen on the laptop lid close. With this update, the problem with gnome-screensaver has been resolved, and X server has been modified to inspect the lid state again. When the laptop lid is closed, the laptop display is disconnected and the screen configuration is changed to use only the external monitor. When the laptop lid is open, the screen configuration returns to the dual head setup using span mode.
The /usr/bin/xvfb-run script incorrectly used the undefined tempfile variable instead of the mktemp command when creating a temporary directory for an X authorization file. The script was not able to create the directory and therefore failed to start Xvfb (X virtual framebuffer). The xvfb-run script now works as expected using mktemp.
The X server did not respect screen limits properly. Therefore, the mouse cursor could be moved outside the visible areas of the screen. Screen limits are now respected by the X server, and the cursor can no longer leave the visible areas of the screen.
The X server did not recognize the lid state correctly if a laptop with attached external display booted with the lid closed. Therefore, the Gnome Display Manager's login dialog did not appear on the external screen. With this update, the X server recognizes the lid as closed, and the login dialog now displays on the external screen in the scenario described.
Under certain circumstances, a user's keyboard and key mappings could go out of sync if the mappings were modified with the xmodmap utility. With this update, the underlying code has been fixed, and modified key mappings can now be used as expected.
The panning feature did not work correctly with X Resize, Rotate and Reflect Extension (RandR) when CRTC cursor confinement was enabled. As a consequence, users were not able to move the mouse pointer beyond the visible part of the screen although certain inaccessible regions were within the panning area. With this update, RandR has been modified to disable CRTC cursor confinement when panning is enabled. The panning feature now works as expected.
When the XChangePointerControl() function was called by a driver after a device was removed from the system, the function tried to dereference the pointer to already freed memory. As a consequence, the X server terminated with a segmentation fault. The X server does not call this function anymore and crashes no longer in the situation described.
Pointer events were not handled correctly when switching screens using the PointerKeys feature with multi-head ATI or NVIDIA graphics cards. This caused the X server to terminate unexpectedly. With this update, events handling has been modified and the X server no longer crashes under these circumstances.