This was required when we started supporting hotplugging to avoid duplicate events. These days the drawback of not being able to record events in the case of a bug is significant, possibly more so than whatever static configurations are still out there. Let's see how much pain this causes.
Signed-off-by: Peter Hutterer <[email protected]> --- I thought about this some more and figured we might as well fix some of the pain ahead of time. If there is a static InputDevice section for a synaptics device, and AutoAddDevices is enabled (the default), just disabling GrabEventDevice _will_ cause duplicate devices. So here's a small but hopefully effective enough fix for that: only disable the grab if the synaptics device itself is hotplugged. The config backend (udev, hal, wscons) should make sure that we don't get the same device twice anyway. src/synaptics.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/synaptics.c b/src/synaptics.c index 07fd450..f4c1d4a 100644 --- a/src/synaptics.c +++ b/src/synaptics.c @@ -576,6 +576,8 @@ set_default_parameters(InputInfoPtr pInfo) int width, height, diag, range; int horizHyst, vertHyst; int middle_button_timeout; + int grab_event_device = 0; + const char *source; /* The synaptics specs specify typical edge widths of 4% on x, and 5.4% on * y (page 7) [Synaptics TouchPad Interfacing Guide, 510-000080 - A @@ -747,7 +749,16 @@ set_default_parameters(InputInfoPtr pInfo) xf86SetRealOption(opts, "PressureMotionMinFactor", 1.0); pars->press_motion_max_factor = xf86SetRealOption(opts, "PressureMotionMaxFactor", 1.0); - pars->grab_event_device = xf86SetBoolOption(opts, "GrabEventDevice", TRUE); + + /* Only grab the device by default if it's not coming from a config + backend. This way we avoid the device being added twice and sending + duplicate events. + */ + source = xf86CheckStrOption(opts, "_source", NULL); + if (source == NULL || strncmp(source, "server/", 7) != 0) + grab_event_device = TRUE; + pars->grab_event_device = xf86SetBoolOption(opts, "GrabEventDevice", grab_event_device); + pars->tap_and_drag_gesture = xf86SetBoolOption(opts, "TapAndDragGesture", TRUE); pars->resolution_horiz = -- 1.8.5.3 _______________________________________________ [email protected]: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: http://lists.x.org/mailman/listinfo/xorg-devel
