summaryrefslogtreecommitdiffstats
path: root/base
diff options
context:
space:
mode:
authorsadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-25 00:04:35 +0000
committersadrul@chromium.org <sadrul@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2011-09-25 00:04:35 +0000
commitf56797b39e5ed58dec8f92ff922fc2dbdb3eca5d (patch)
tree835e130ee1e23d355462901312e76fdb3cad82f5 /base
parentd8b4f1d484d98fd524863e5d9f1a925e92eec343 (diff)
downloadchromium_src-f56797b39e5ed58dec8f92ff922fc2dbdb3eca5d.zip
chromium_src-f56797b39e5ed58dec8f92ff922fc2dbdb3eca5d.tar.gz
chromium_src-f56797b39e5ed58dec8f92ff922fc2dbdb3eca5d.tar.bz2
touchui: support XInput2 multitouch
Use XI2 multitouch events instead of mouse events as touch event input for touchui build. Note: XI MT will be supported in X server 1.12 and XI2.2. Please use build switch "use_xi2_mt=<minor version number>" to specify the minimum XI2 minor version. It is useful to test on experimental XI2.1 with MT support (e.g. build with use_xi2_mt=1). BUG=95150 TEST=(1) build with touchui=1 use_xi2_mt=1 (2) test on ubuntu 11.04 (X server 1.10 and XI2.1 with experimental MT support). (3) manually test if touch works on browser UI and JS touch events. Review URL: http://codereview.chromium.org/7792094 Patch from Ningxin Hu <ningxin.hu@intel.com>. git-svn-id: svn://svn.chromium.org/chrome/trunk/src@102668 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'base')
-rw-r--r--base/message_pump_x.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/base/message_pump_x.cc b/base/message_pump_x.cc
index f9a2b6f..33ca2d5 100644
--- a/base/message_pump_x.cc
+++ b/base/message_pump_x.cc
@@ -75,12 +75,25 @@ void InitializeXInput2(void) {
return;
}
+#if defined(USE_XI2_MT)
+ // USE_XI2_MT also defines the required XI2 minor minimum version.
+ int major = 2, minor = USE_XI2_MT;
+#else
int major = 2, minor = 0;
+#endif
if (XIQueryVersion(display, &major, &minor) == BadRequest) {
VLOG(1) << "XInput2 not supported in the server.";
xiopcode = -1;
return;
}
+#if defined(USE_XI2_MT)
+ if (major < 2 || (major == 2 && minor < USE_XI2_MT)) {
+ VLOG(1) << "XI version on server is " << major << "." << minor << ". "
+ << "But 2." << USE_XI2_MT << " is required.";
+ xiopcode = -1;
+ return;
+ }
+#endif
}
} // namespace