Description of problem:
Synaptics on RHEL 6 unconditionally undefines SMOOTH_SCROLLING because of limitations of the rest of the xorg stac. The DeviceInitTouch function relies on SMOOTH_SCROLLING to be defined when multitouch is present (which is the historical sequence). With it missing, the number of axes the device has is not high enough to initialize multitouch axes.
int axnum = 4 + i; /* Skip x, y, and scroll axes */
Should be 2 + i, because the two smooth scrolling axes are missing.
Version-Release number of selected component (if applicable):
1. Start up an X server with a multitouch-capable touchpad. Run xinput list "SynPS/2 Synaptics TouchPad" and look at the axis description for multitouch axes. It'll show -1, -1 as axis range
2. disable all gestures in the driver:
synclient VertTwoFingerScroll=0 ClickFinger1=0 ClickFinger2=0 ClickFinger3=0 TapAndDragGesture=0 TapButton1=0 TapButton2=0 TapButton3=0
3. run xinput test-xi2, move into the window, then use two fingers. The touch updates will have axes 0, 1, and 4+ set.
The MT axes are not initialized with the correct axis ranges, the server will refuse such axes on init. Events still have the axis values in them though.
Correct number of axes on the device.
This bug is unlikely to be an issue for clients, since RHEL6 does not support multi-touch, and to get touch events client would have to disable scrolling, tapping, etc. on the touchpad driver.
This bug is more visible on newer servers that print a warning to the log if a driver tries to initialize an axis that exceeds the number of axes on the device.
xorg-x11-drv-synaptics-188.8.131.521-2.el6 is available in brew
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.
For information on the advisory, and where to find the updated
files, follow the link below.
If the solution does not work for you, open a new bug report.