- From: Daniel Freedman <dfreedm@google.com>
- Date: Tue, 19 Mar 2013 10:40:30 -0700
- To: Brandon Wallace <brandon.wallace@yahoo.com>
- Cc: Константинов Сергей <twirl@yandex-team.ru>, "public-pointer-events@w3.org" <public-pointer-events@w3.org>
- Message-ID: <CAAUAVAizgABRuT3s1TVSq=K-c+jAfuj98fzcHC1_Mod8sqkssg@mail.gmail.com>
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 UTC