RE: IE implementation of navigator.maxTouchPoints

Definitely happy to help here. Our code is roughly:

lMaxTouchPoints = 0;
if (Win8+)
{
    lMaxTouchPoints = GetSystemMetrics(SM_MAXIMUMTOUCHES);
}
return lMaxTouchPoints;

The OS check is there because we don’t support touch in the IE platform on Windows 7 and usage of touchscreen devices on Win7 is extremely low (most have moved to Win8+).

Have you seen reports of this on Windows 8/8.1 or just Windows 7?

There definitely are touchpad drivers that like to install a fake touch driver in order to fake zoom gestures (e.g. pinch to zoom). I don’t think there’s a way for the Windows input stack to tell the difference between that and an actual touchscreen. But if you’d like, I can loop you in with our Win32 input team.

-Jacob

From: rbyers@google.com [mailto:rbyers@google.com] On Behalf Of Rick Byers
Sent: Wednesday, September 10, 2014 10:26 AM
To: Jacob Rossi
Cc: public-pointer-events@w3.org; David Bokan
Subject: IE implementation of navigator.maxTouchPoints

Hey Jacob,
We're getting reports of some complaints of navigator.maxTouchPoints returning 1 on Chrome when there is in fact no touchscreen.  IE11 correctly returns 0.  http://crbug.com/352942.  Scott (from MS OpenTech) wrote the code<https://code.google.com/p/chromium/codesearch#chromium/src/ui/base/touch/touch_device_win.cc&q=MAXTOUCHPOINTS&sq=package:chromium&type=cs&l=17> for this for us, basically just:

int MaxTouchPoints() {
  return GetSystemMetrics(SM_MAXIMUMTOUCHES);
}

Apparently, despite what we'd expect fro the MSDN docs, this is insufficient.  Users report that it returns 1 in scenarios with both an internal and external mouse plugged in - although we haven't been able to reproduce it (and they've confirmed they see those values from the API directly, so it's not some bug in chrome).

Any chance you can share the algorithm with us that IE uses to compute maxTouchPoints on windows?  Ideally Chrome and IE would always agree here, and there's obviously some special cases.

Thanks,
   Rick

Received on Wednesday, 10 September 2014 23:45:08 UTC