If pinch-zoom is disabled with touch-action, then 2 finger scrolling should also be disabled |
|||||
Issue descriptionWhat should happen if you drag with two fingers on a 'touch-action: pan-x pan-y' region? Unfortunately this is out of scope of the PE spec for charter / IP reasons. Chrome currently scrolls but Edge does not. I think it's important that we match Edge's behavior of suppressing these scrolls as well. In particular some sites implement a UX where a single finger scrolls as normal, but dragging with two fingers drives some custom effect instead of the browser's default behavior.
,
Jan 5 2017
I see two possible approaches to fix this: Option A: Redefine when gesture-pinch-begin fires. Currently GestureProvider fires a GPB when a scale gesture is detected. It can instead fire a GPB whenever a multi-finger interaction is detected. Not sure how breaking this could be for other users of GPB/GPE. In particular, a single GSB/GBE can now contain multiple GPB/GPE sequences. And we have to be careful when to fire GPEs. Option B: Let TouchActionFilter locally treat a multi-finger gesture as a pinch-zoom. Instead of using the effect of 'touch-action: pinch-zoom' within a GPB/GPE sequence, use it whenever there is a multifinger gesture. A simpler solution would be to assume that it will be effective from the beginning of a multi-finger gesture till GSE.
,
Feb 22 2017
,
Feb 22 2017
,
Mar 14 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/16ce460b6793b9fff0c1d4cc72deab60b921a159 commit 16ce460b6793b9fff0c1d4cc72deab60b921a159 Author: mustaq <mustaq@chromium.org> Date: Tue Mar 14 16:22:36 2017 Fixed two-finger pan filtering with 'touch-action: pan-x pan-y'. For touch-action filtering, we treat a two-finger pan like a single-finger pan. As a result, a 'touch-action: pan-x pan-y' region allows two-finger panning but disallows pinch-zooming. This looks problematic: - It is not easy for users to distinguish between two-finger panning vs pinching. - Edge's touch-action filtering treats a two-finger pan like a pinch-zoom for a while. - Popular embedded maps need to distinguish between two-finger vs one-finger gestures through touch-action, where a two-finger gestures is used to manipulate the map while a one-finger gesture is handled by the browser. Here is a mock: http://mustaqahmed.github.io/web/image-panning.html This CL filters a two-finger pan like a pinch-zoom to solve this problem. In addition to solving the bug, this CL also simplified the touch-action filtering code around panning/zooming. BUG= 632525 Review-Url: https://codereview.chromium.org/2726623002 Cr-Commit-Position: refs/heads/master@{#456722} [modify] https://crrev.com/16ce460b6793b9fff0c1d4cc72deab60b921a159/content/browser/renderer_host/input/touch_action_filter.cc [modify] https://crrev.com/16ce460b6793b9fff0c1d4cc72deab60b921a159/content/browser/renderer_host/input/touch_action_filter.h [modify] https://crrev.com/16ce460b6793b9fff0c1d4cc72deab60b921a159/content/browser/renderer_host/input/touch_action_filter_unittest.cc [modify] https://crrev.com/16ce460b6793b9fff0c1d4cc72deab60b921a159/content/common/input/synthetic_web_input_event_builders.cc [modify] https://crrev.com/16ce460b6793b9fff0c1d4cc72deab60b921a159/content/common/input/synthetic_web_input_event_builders.h
,
Mar 14 2017
,
Mar 14 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/3ce63d7e6d1431b4866d233b4d2e7ea269ebbd3e commit 3ce63d7e6d1431b4866d233b4d2e7ea269ebbd3e Author: qyearsley <qyearsley@chromium.org> Date: Tue Mar 14 20:07:31 2017 Remove baseline with failure for pointervent_touch-action_two-finger... BUG= 632525 Review-Url: https://codereview.chromium.org/2754503002 Cr-Commit-Position: refs/heads/master@{#456802} [delete] https://crrev.com/e2477101857d4c38dd2eb7fb67312b7fd0022f5e/third_party/WebKit/LayoutTests/external/wpt/pointerevents/compat/pointerevent_touch-action_two-finger_interaction-manual-expected.txt
,
Mar 27 2017
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by mustaq@chromium.org
, Jan 5 2017Status: Assigned (was: Available)