Christopher Cope <ccope3@utk.edu> writes:
@@ -286,8 +286,10 @@ static void enable_xinput2(void)
class->number, class->min, class->max, class->resolution, class->mode,
XGetAtomName( data->display, class->label ));
if (class->label == x11drv_atom( Rel_X ) || class->label == x11drv_atom( Rel_Y )) count++;
- /* workaround for drivers that don't provide labels */
- if (!class->label && class->number <= 1 && class->mode == XIModeRelative) count++;
+ /* workaround for drivers that don't provide correct labels */
+ if (((!class->label && class->number <= 1) || class->label ==
x11drv_atom( Abs_X ) ||
+
class->label == x11drv_atom( Abs_Y ))
+ && class->mode == XIModeRelative) count++;
The whole point of testing labels was because some platforms don't set
the relative mode correctly, so this is going to break them again.