diff options
-rw-r--r-- | hw/xfree86/common/xf86Xinput.c | 26 | ||||
-rw-r--r-- | hw/xfree86/doc/man/xorg.conf.man.pre | 13 |
2 files changed, 37 insertions, 2 deletions
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index 6cbc23e36..b37dae62a 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -574,6 +574,27 @@ MergeInputClasses(IDevPtr idev, InputAttributes *attrs) return Success; } +static Bool +IgnoreInputClass(IDevPtr idev, InputAttributes *attrs) +{ + XF86ConfInputClassPtr cl; + Bool ignore; + + for (cl = xf86configptr->conf_inputclass_lst; cl; cl = cl->list.next) { + if (!InputClassMatches(cl, attrs)) + continue; + if (xf86findOption(cl->option_lst, "Ignore")) { + ignore = xf86CheckBoolOption(cl->option_lst, "Ignore", FALSE); + if (ignore) + xf86Msg(X_CONFIG, + "%s: Ignoring device from InputClass \"%s\"\n", + idev->identifier, cl->identifier); + return ignore; + } + } + return FALSE; +} + /** * Create a new input device, activate and enable it. * @@ -736,6 +757,11 @@ NewInputDeviceRequest (InputOption *options, InputAttributes *attrs, /* Apply InputClass settings */ if (attrs) { + if (IgnoreInputClass(idev, attrs)) { + rval = BadIDChoice; + goto unwind; + } + rval = MergeInputClasses(idev, attrs); if (rval != Success) goto unwind; diff --git a/hw/xfree86/doc/man/xorg.conf.man.pre b/hw/xfree86/doc/man/xorg.conf.man.pre index baabdb59f..ee91b9afe 100644 --- a/hw/xfree86/doc/man/xorg.conf.man.pre +++ b/hw/xfree86/doc/man/xorg.conf.man.pre @@ -1070,11 +1070,20 @@ When an input device has been matched to the .B InputClass section, any .B Option -entries are applied to the device. See the +entries are applied to the device. One +.B InputClass +specific +.B Option +is recognized. See the .B InputDevice -section above for a description of the various +section above for a description of the remaining .B Option entries. +.TP 7 +.BI "Option \*qIgnore\*q \*q" boolean \*q +This optional entry specifies that the device should be ignored entirely, +and not added to the server. This can be useful when the device is handled +by another program and no X events should be generated. .SH "DEVICE SECTION" The config file may have multiple .B Device |