W3C home > Mailing lists > Public > public-pointer-events@w3.org > January to March 2013

Re: Last Call comments

From: Daniel Freedman <dfreedm@google.com>
Date: Tue, 19 Mar 2013 10:40:30 -0700
Message-ID: <CAAUAVAizgABRuT3s1TVSq=K-c+jAfuj98fzcHC1_Mod8sqkssg@mail.gmail.com>
To: Brandon Wallace <brandon.wallace@yahoo.com>
Cc: Константинов Сергей <twirl@yandex-team.ru>, "public-pointer-events@w3.org" <public-pointer-events@w3.org>
I had assumed that the info window was another canvas overlaying the map
canvas, so that they did not have to redraw the map canvas to pop the info
window up.
In the case that the info window and map are in the same canvas, you would
have to throw a class on the canvas with `touch-action: auto` when the info
window is up, and take that class off when the info window is hidden.

This would still be more performant than using preventDefault because in
the info window open case, no event loop has to be entered and it's more
likely that the pinch-zoom can be done on a GPU composited render path.
In the info window closed case, there is no real difference between the
touch model and the PointerEvent model except that no preventDefault ever
need be called.


On Tue, Mar 19, 2013 at 10:33 AM, Brandon Wallace <brandon.wallace@yahoo.com
> wrote:

> How does your solution solve Example 2?
>
> Example 2 is: How do I prevent browser behavior if the pinch gesture
> occurs on one part of the canvas element, but allow browser behavior if the
> pinch gesture occurs on the another part of the same canvas element?
>
> --
> Brandon
> http://palladiumblog.wordpress.com/
>
>   ------------------------------
> *From:* Daniel Freedman <dfreedm@google.com>
> *To:* Константинов Сергей <twirl@yandex-team.ru>
> *Cc:* "public-pointer-events@w3.org" <public-pointer-events@w3.org>
> *Sent:* Tuesday, March 19, 2013 12:21 PM
> *Subject:* Re: Last Call comments
>
> Example 1 is what `touch-action: pan-x` is for. System controlled
> scrolling in the X axis, with PointerEvents generated in the Y axis.
> Example 2, you would place `touch-action: none` on the map and do nothing
> for the info window, which will pinch-zoom as platform dictated.
>
> In both examples, the css is static, and therefore you don't have to call
> preventDefault on any event.
>
>
> On Tue, Mar 19, 2013 at 2:24 AM, Константинов Сергей <twirl@yandex-team.ru
> > wrote:
>
> > I've to disagree with you on this. CSS *is* a perfectly valid way to
> configure the browser behavior.
>
> When you need to alter browser behavoir statically - maybe.
>
> Example 1: Safari two-finger scroll. Our task is to prevent browser
> behavior (page scroll) on vertical scroll and not to prevent browser
> behavior (history back/forward) on horizontal scroll.
> Example 2: we have a map and info window on it. Our task is to prevent
> browser behavior (page zoom) in favor of map zooming when the fingers are
> on map; and we want not to prevent the same behavior (page zoom) when
> fingers are on the info window. Both map and info window are rendered on
> canvas.
>
> What we have to do? Dynamically change CSS properties? That's ridiculous.
> In Safari we can just call preventDefault on touchmove event.
>
>
>
>
>
>
Received on Tuesday, 19 March 2013 17:41:18 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:17:04 GMT