XFixes

In computing, XFixes is an X Window System extension which makes useful additions to the X11 protocol. It was started in 2003 by Keith Packard. It first appeared in the KDrive X server and later in X.Org Server version 6.8.0.

The extension implements a collection of unrelated additions to the protocol. The theme of the collection is small additions to remove important defects in the protocol that can't be worked around using the pure X11 protocol.

The point of implementing these additions in an extension is to leave the core server code, and a server that does not include the XFixes extension, implementing the original pure X11 protocol. However, as the additions are designed in a backward compatible way, there is no practical reason for a server not to implement them. The client and server can always negotiate down to the additions that both understand.

Version history

 * Version 1 of the extension included Save Set processing changes (to make embedding applications more reliable), selection notification events (add events sent when selection ownership is asserted) and cursor tracking (requests allowing the image to be tracked reliably).
 * Version 2 of the extension adds region objects and cursor names.
 * Version 3 allows existing region objects to be enlarged.
 * Version 4 allows the mouse cursor to be hidden over specific windows.
 * Version 5 introduces pointer barriers, which allows using easy-to-reach locations (according to Fitts's Law) even in multi-monitor configurations.

Controversy
XFixes was a source of controversy when Packard committed the extension to the XFree86 project hours before the feature freeze window for XFree86 4.3.0 began in December 2002 without prior approval of the XFree86's Core Team (a cathedral-style group that were allowed to commit changes to the project, of which Packard was a member). Packard was stripped of his commit rights as a result (but remained in the project's Core Team until March 2003)  and the extension was backed out six weeks later.