diff options
author | Dan Nicholson <dbn.lists@gmail.com> | 2010-02-16 08:11:41 -0800 |
---|---|---|
committer | Dan Nicholson <dbn.lists@gmail.com> | 2010-04-11 07:29:23 -0700 |
commit | adbbc661080ba4efdb764c154d40c4d2fe718e16 (patch) | |
tree | c30c22f42a6adcc7ab85f486e734ca41b58809a6 | |
parent | d7c98c1c81ae272f66edb05fde20f4c616604add (diff) |
xfree86: Fix priority ordering for ignoring input classesfor-keithp
Commit 8736d112afb0dd61dfdaadd6378eafd200b2ef5f changed the priority
ordering of the InputClass option merging to be "last match wins". This
fixes the handling of Option "Ignore" to follow that logic.
Signed-off-by: Dan Nicholson <dbn.lists@gmail.com>
Reviewed-by: Keith Packard <keithp@keithp.com>
-rw-r--r-- | hw/xfree86/common/xf86Xinput.c | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c index 822922717..7723ba683 100644 --- a/hw/xfree86/common/xf86Xinput.c +++ b/hw/xfree86/common/xf86Xinput.c @@ -625,25 +625,30 @@ MergeInputClasses(IDevPtr idev, InputAttributes *attrs) return Success; } +/* + * Iterate the list of classes and look for Option "Ignore". Return the + * value of the last matching class and holler when returning TRUE. + */ static Bool IgnoreInputClass(IDevPtr idev, InputAttributes *attrs) { XF86ConfInputClassPtr cl; - Bool ignore; + Bool ignore = FALSE; + const char *ignore_class; 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; + ignore_class = cl->identifier; } } - return FALSE; + + if (ignore) + xf86Msg(X_CONFIG, "%s: Ignoring device from InputClass \"%s\"\n", + idev->identifier, ignore_class); + return ignore; } /** |