Touchpad sensitivity for overscroll |
|||||
Issue descriptionfrom hwi@: Touchpad hand movement tends to be faster than the finger movement on touchscreen due to less physical friction and shorter moving distance compared to touchscreen. As a result, gesture nav feels to be triggered unexpectedly, especially when scrolling a smaller scrollable UI elements e.g. playlist on a youtube page, label list on gmail, bottom horizontal tabs on Sheets.
,
Oct 10 2017
BTW, as we use either fixed values or screen width and height for thresholds, size of UI elements should not have any effect on sensitivity of overscroll. So, I think the last part in the bug description which says scrolling smaller UI element generates more unexpected triggers should not be the case.
,
Oct 12 2017
Solution in #1 sounds like a good start. Let's try that.
,
Oct 20 2017
sgabriel@: do you mean doing both suggestions in #1? (increase threshold by 20% for touchpad AND use maximum of width and height)
,
Oct 22 2017
Both. I'd like to see the combination, if it's bad we'll revert to a simple increase.
,
Oct 24 2017
sgabriel@: One last question for you: should I use maximum of width and height just for touchpad or also for touchscreen?
,
Oct 24 2017
What do you think?
,
Oct 24 2017
I think touchscreen would also benefit from this as we had complaints about easy to trigger pull-to-refresh on touchscreen (though this is not the only factor. Threshold ratio for vertical overscroll was smaller than horizontal one. I'm going to unify these threshold values, too). It would also make the code simpler :-)
,
Oct 25 2017
Alright sounds good let's do that. Let me know when it's testable :)
,
Oct 25 2017
,
Oct 30 2017
,
Oct 31 2017
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/4ef8db7d96d253976913fa3e3af4d17aecd6224c commit 4ef8db7d96d253976913fa3e3af4d17aecd6224c Author: Mohsen Izadi <mohsen@chromium.org> Date: Tue Oct 31 00:08:42 2017 Adjust overscroll thresholds for touchpad To improve touchpad overscroll sensitivity, start and completion thresholds for touchpad are increased by 20%. This needed splitting some threshold into two separate ones for touchpad and touchscreen. Also, both vertical and horizontal overscroll now use maximum of screen width and screen height to calculate completion threshold. Previously, vertical overscroll was using screen height and horizontal overscroll was using screen width. This change makes overscroll in both dimensions more consistent. Also, some parameters had different values for vertical vs horizontal overscroll. They have been merged into a single parameter. BUG=772103 TEST=RenderWidgetHostViewAuraOver*Test.* in content_unittests Change-Id: Id4efa17b247fffdbd13c0087be5afbec85f81131 Reviewed-on: https://chromium-review.googlesource.com/740782 Reviewed-by: Alex Moshchuk <alexmos@chromium.org> Reviewed-by: Sadrul Chowdhury <sadrul@chromium.org> Commit-Queue: Mohsen Izadi <mohsen@chromium.org> Cr-Commit-Position: refs/heads/master@{#512681} [modify] https://crrev.com/4ef8db7d96d253976913fa3e3af4d17aecd6224c/content/browser/renderer_host/input/touch_selection_controller_client_aura_browsertest.cc [modify] https://crrev.com/4ef8db7d96d253976913fa3e3af4d17aecd6224c/content/browser/renderer_host/overscroll_configuration.cc [modify] https://crrev.com/4ef8db7d96d253976913fa3e3af4d17aecd6224c/content/browser/renderer_host/overscroll_controller.cc [modify] https://crrev.com/4ef8db7d96d253976913fa3e3af4d17aecd6224c/content/browser/renderer_host/render_widget_host_view_aura_unittest.cc [modify] https://crrev.com/4ef8db7d96d253976913fa3e3af4d17aecd6224c/content/browser/site_per_process_browsertest.cc [modify] https://crrev.com/4ef8db7d96d253976913fa3e3af4d17aecd6224c/content/browser/web_contents/aura/gesture_nav_simple.cc [modify] https://crrev.com/4ef8db7d96d253976913fa3e3af4d17aecd6224c/content/browser/web_contents/aura/overscroll_navigation_overlay_unittest.cc [modify] https://crrev.com/4ef8db7d96d253976913fa3e3af4d17aecd6224c/content/browser/web_contents/aura/overscroll_window_delegate.cc [modify] https://crrev.com/4ef8db7d96d253976913fa3e3af4d17aecd6224c/content/browser/web_contents/aura/overscroll_window_delegate.h [modify] https://crrev.com/4ef8db7d96d253976913fa3e3af4d17aecd6224c/content/browser/web_contents/aura/overscroll_window_delegate_unittest.cc [modify] https://crrev.com/4ef8db7d96d253976913fa3e3af4d17aecd6224c/content/browser/web_contents/web_contents_view_aura_browsertest.cc [modify] https://crrev.com/4ef8db7d96d253976913fa3e3af4d17aecd6224c/content/public/browser/overscroll_configuration.h
,
Nov 1 2017
sgabriel@, hwi@: The CL in c#12 has landed on canary now. It is increasing thresholds by 20% and uses maximum of width and height to calculate activation threshold (which should increase PTR threshold even more). Please give the pull-to-refresh and overscroll-nav a try and let me know whether you think it needs more adjustment or not.
,
Nov 8 2017
Tested on Canary 64.0.3261.0 I am really liking the current implementation. @Hwi?
,
Nov 8 2017
Thanks much, mohsen@! And apologies for my late reply. - The touchscreen feels great with the screenwidth/height as overscroll threshold. - With touchpad, I'm wondering if there're other parameter options for the start threshold in chrome://flags. In the case that I use scrollable containers and try to get to either end of the list (e.g. Google Sheets tabs, Sidebar menu on Youtube, Playlist on Youtube, etc), I end up triggering the both PTR or GN UIs, and reloading or loading prev/next page. I think it happens easily because 1) I tend to move fingers fast to get the end of the list quickly, 2) My eyes are on the list and often too late to notice the indication favs. Do you feel differently, mohsen@ and sgabriel@? Thanks again.
,
Nov 9 2017
Interesting, I'm not sure how to fix this but I understand it and it triggered for me as well. Fast speed scrolling on trackpad (or even flinging) definitely triggers the pull to refresh un-expectedly. Mohsen@ do you think there's ay way to identify a "fling" or a fast scroll and interpret it differently?
,
Nov 9 2017
I like ideas on c#16. Would the following be worth trying? 1. Detection of the fast scrolling and fling during the gesture within the start threshold and suppress the UI if the movement is within "too-fast" range. 2. Increased start threshold ratio more than 20% (i.e. more than 100dp) for touchpad.
,
Nov 21 2017
,
Sep 27
|
|||||
►
Sign in to add a comment |
|||||
Comment 1 by moh...@chromium.org
, Oct 10 2017Owner: sgabr...@chromium.org
Status: Assigned (was: Untriaged)