On Thu, Feb 4, 2010 at 7:58 PM, Peter Hutterer <peter.hutte...@who-t.net> wrote: > From: Dan Nicholson <dbn.li...@gmail.com> > > Sometimes it is desirable to skip adding specific input devices to the > server. The "Ignore" option is used similarly to Monitor sections so > that matched devices will not be added. BadDevice is returned to the > config backend so that it will clean up all resources. > > Signed-off-by: Dan Nicholson <dbn.li...@gmail.com> > Reviewed-by: Peter Hutterer <peter.hutte...@who-t.net> > --- > Dan: > tested, works. Only change to your patch is BadIDChoice -> BadDevice which > seems somewhat more explanatory to me.
Thanks. Tony, see the patch below about ignoring input devices. Maybe it works for your IR handset. Dan > > hw/xfree86/common/xf86Xinput.c | 26 ++++++++++++++++++++++++++ > 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 fb0ee9c..4dcc124 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 = BadDevice; > + 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 222530b..8546924 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 > -- > 1.6.6 > > _______________________________________________ > xorg-devel mailing list > xorg-devel@lists.x.org > http://lists.x.org/mailman/listinfo/xorg-devel > _______________________________________________ xorg-devel mailing list xorg-devel@lists.x.org http://lists.x.org/mailman/listinfo/xorg-devel