]> diplodocus.org Git - xorg-xinput/blobdiff - src/xinput.c
If XI2 is available, list devices through XIQueryDevice.
[xorg-xinput] / src / xinput.c
index 029b3fbd98a134e54e92a38178cb5b4c81f76e85..88fe2fa311c0b94a80012894019d085e094a66e4 100644 (file)
@@ -135,21 +135,23 @@ static entry drivers[] =
     }
 };
 
-static Bool
-is_xinput_present(Display      *display)
+int
+xinput_version(Display *display)
 {
     XExtensionVersion  *version;
-    Bool               present;
+    static int vers = -1;
+
+    if (vers != -1)
+        return vers;
 
     version = XGetExtensionVersion(display, INAME);
 
     if (version && (version != (XExtensionVersion*) NoSuchExtension)) {
-       present = version->present;
+       vers = version->major_version;
        XFree(version);
-       return present;
-    } else {
-       return False;
     }
+
+    return vers;
 }
 
 XDeviceInfo*
@@ -269,7 +271,7 @@ main(int argc, char * argv[])
     func = argv[1];
     while((*func) == '-') func++;
 
-    if (!is_xinput_present(display)) {
+    if (!xinput_version(display)) {
        fprintf(stderr, "%s extension not available\n", INAME);
        return EXIT_FAILURE;
     }