Re: IE implementation of navigator.maxTouchPoints

Ah right. Might have been renamed, if I recall correctly my checkout should be around Chromium 34/35-ish.


--  
Sangwhan Moon


On Friday, September 12, 2014 at 3:31, Rick Byers wrote:

> Essentially yes (although I don't think that compiles - you mean IsTouchDevicePresent, not IsTouchEnabledDevice?). I believe bokan@ plans to land something like this ASAP.
>  
> Thanks,
> Rick
>  
>  
> On Thu, Sep 11, 2014 at 1:29 AM, Sangwhan Moon <smoon@opera.com (mailto:smoon@opera.com)> wrote:
> > Makes sense, is was this what you had in mind?
> >  
> > https://gist.github.com/cynthia/fe95daed5322109f567c
> >  
> > (I didn't actually check if this compiles, my work environment is 100% *nix. :-()
> >  
> > Cheers,
> > Sangwhan
> >  
> >  
> > On Thu, Sep 11, 2014 at 10:46 AM, Rick Byers <rbyers@chromium.org (mailto:rbyers@chromium.org)> wrote:
> > > Thank you! Indeed it looks like this is Windows 7 only, and unlike IE we do still want to support touchscreens on Windows 7 (a small but non-trivial fraction of our touchscreen users are still on Windows 7). It looks like SM_DIGITIZER is false in these cases, so I think we can try looking at SM_MAXIMUMTOUCHES only when SM_DIGITIZER is true. Sound reasonable to you?
> > >  
> > > Thanks,
> > > Rick
> > >  
> > >  
> > > On Wed, Sep 10, 2014 at 7:44 PM, Jacob Rossi <Jacob.Rossi@microsoft.com (mailto:Jacob.Rossi@microsoft.com)> wrote:
> > > > 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) [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 (mailto: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
> > > >  
> > > >  
> > > >  
> > > >  
> >  
> >  
> >  
> > --  
> > Sangwhan Moon [Opera Software ASA]
> > Software Engineer | Tokyo, Japan  
>  

Received on Friday, 12 September 2014 09:38:14 UTC