xserver: Branch 'master'

Keith Packard keithp at kemper.freedesktop.org
Mon Apr 12 21:39:28 PDT 2010


 hw/xfree86/common/xf86Xinput.c |   19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

New commits:
commit adbbc661080ba4efdb764c154d40c4d2fe718e16
Author: Dan Nicholson <dbn.lists at gmail.com>
Date:   Tue Feb 16 08:11:41 2010 -0800

    xfree86: Fix priority ordering for ignoring input classes
    
    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 at gmail.com>
    Reviewed-by: Keith Packard <keithp at keithp.com>

diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c
index 8229227..7723ba6 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;
 }
 
 /**


More information about the xorg-commit mailing list