New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.
Starred by 73 users

Issue metadata

Status: Fixed
Owner:
Closed: May 29
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: Linux , Windows
Pri: 2
Type: Bug

Blocked on:
issue 526463
issue 599497


Show other hotlists

Hotlists containing this issue:
Top-Starred-Bugs


Sign in to add a comment

Page Zoom conflicts Inertial Scrolling on Linux and Windows

Reported by r...@lab.net, Jun 24 2013

Issue description

UserAgent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1541.2 Safari/537.36

Steps to reproduce the problem:
1. Open a relatively long page in a tab
2. Scroll down on the trackpad
3. Finish the physical scroll control operation
3. Press the control key

What is the expected behavior?
Nothing should happen when pressing the control key without any other coincident action.

What went wrong?
While the control key is held down, Chrome converts any remaining inertial scroll into a page zoom instead.

Did this work before? No 

Chrome version: 29.0.1541.2  Channel: dev
OS Version: 

My specific configuration is a laptop running Ubuntu 13.04 with two-finger scrolling enabled.

PS I detest control+mouse-scroll as a zoom feature, I *constantly* get accidental zooms when performing unrelated operations. I would disable this feature completely if I could.
 

Comment 1 by r...@lab.net, Jun 24 2013

You fixed this on Mac in  issue 178972 , how about Linux?
I have Chrome 31 and this is still a problem on linux. Essentially the same thing as was in Mac, so may be it would make sense to disable ctrl-scroll zoom on linux too?

Comment 3 by yalo...@gmail.com, Nov 27 2013

I can confirm this is still an issue on Windows too https://code.google.com/p/chromium/issues/detail?id=254612
Cc: agautam@chromium.org ligim...@chromium.org
Labels: Needs-Bisect
Labels: -Needs-Bisect
Status: Untriaged
this issue is reproducible and existing in all the channel, 
making as non regression issue.

Comment 6 by mid...@gmail.com, Jan 20 2014

seeing this on ubuntu 12.10
Labels: Proj-DesktopAura
If this is still happening in Aura, this bug suggests it's an Xorg "feature" misfiring, but switching to smooth scrolling events and doing inertia in the client is the future and avoids this.
https://bugs.freedesktop.org/show_bug.cgi?id=38909

(I don't have a Linux install with a touchpad, so I can't verify if it's been fixed in Aura. It reproduces in a VM on my Mac, but that might be the host OS's inertial scrolling. I asked a friend and he was able to repro on 34, so adding Proj-DesktopAura.)
> 34

(Oops, off-by-one error. Not actually confirmed to still be happening in Aura.)

Comment 9 by r...@lab.net, Apr 30 2014

Still reproducible using my touchpad with the dev channel, FWIW:

Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/36.0.1964.2 Safari/537.36

Ubuntu 13.04

David, thanks for the interesting pointer to the xorg bug, I never noticed that in evince etc.
> David, thanks for the interesting pointer to the xorg bug, I never noticed that in evince etc.

Comment 25 on that bug suggests GTK (GTK3 I assume) uses the new events these days, which might explain why it's not in Evince. I want to say it was in all programs when I saw this bug a few years ago (which is why I knew about this Xorg behavior), but I could be misremembering.

Comment 11 by r...@lab.net, Apr 30 2014

I just verified the same behavior occurs in evince and Firefox 29 and qupzilla (qt-based web browser), so it's a quite persistent and universal issue apparently. Sad face.

Comment 12 by mid...@gmail.com, Sep 8 2014

On Ubuntu 14.04, this happens on both Chromium 37.0.2062.94/FireFox 32.0.

For the time being, here's a less-than-perfect workaround (ie. completely disable 'coasting'/'flicking'):
http://askubuntu.com/questions/301766/turn-off-trackpad-scroll-momentum

Suggested change:
Effectively ignore/cancel existing flick/scroll events from trackpad/mouse when Ctrl is pressed.

Scenarios:
* Scroll occurring, Ctrl pressed = no zooming
* Ctrl held, scrolling occurs = zooming enabled, user can 'zoom-by-flick'
I can confirm this on Google Chrome 38.0.2125.111 (Official Build 290379), using Ubuntu 14.04.
It also happens when you're in inertia scroll and switch/close tabs using Ctrl+Tab/Ctrl+W.

Comment 14 by a...@chromium.org, Jun 5 2015

Cc: a...@chromium.org sdayala@chromium.org
 Issue 367483  has been merged into this issue.

Comment 15 Deleted

Comment 16 by erdi@chromium.org, Jun 11 2015

For a workaround:
1. Install xbindkeys
2. Add these lines to ~/.xbindkeysrc to disable ctrl + scroll:
"/bin/true"
  Control + b:5 + release
"/bin/true"
  Control + b:4 + release

Blockedon: 526463
Cc: dtapu...@chromium.org
Components: -UI UI>Input Blink>Scroll
Labels: Hotlist-Input-Dev OS-Windows
Owner: chongz@chromium.org
Status: Assigned (was: Untriaged)
Summary: Page Zoom conflicts Inertial Scrolling on Linux and Windows (was: Page Zoom conflicts Inertial Scrolling on Linux)
Able to reproduce on Windows and Linux, Chrome 51.0.2704.79. 

The Mac fix  issue 178972  removed this feature, but on Windows and Linux side we should keep this feature and check if Control key was pressed during a scroll.

e.g. In |WebContentsImpl::HandleWheelEvent|, ask |MouseWheelEventQueue| if it's during a scroll 
https://cs.chromium.org/chromium/src/content/browser/web_contents/web_contents_impl.cc?sq=package:chromium&dr=CSs&rcl=1464952570&l=1750

However |MouseWheelEventQueue| doesn't have this information yet, which will be fixed by the scrolling latch issue 526463.
 Issue 606323  has been merged into this issue.
Cc: msrchandra@chromium.org ranjitkan@chromium.org tkonch...@chromium.org
 Issue 254612  has been merged into this issue.

Comment 20 by bokan@chromium.org, Jan 19 2017

Just to update: this is blocked on a resolution to issue 526463 but that's quite close to shipping so hopefully we can take a look at this in the coming quarter.
Thanks for the update!
Is this a dupe of #6136?
 issue 6136  didn't have a clear reproduce step in description, but this should be a dupe according to reporter's later comment:  issue 6136 #c5.

Merging into this issue as we have clearer reproduce steps and discussion here.
 Issue 6136  has been merged into this issue.

Comment 26 by dandv@google.com, Oct 24 2017

Linux workaround: unfortunately the xbindkeys solution from comment #16 no longer works for current Chrome versions. A workaround is to disable inertial scrolling completely at the OS level. For Synaptic touchpads, run this commands:

synclient CoastingSpeed=0
Cc: chongz@chromium.org
Owner: bokan@chromium.org
According to #20 this should still be blocked by issue 526463.

Re-assigning to bokan@ as I no long work on this issue.

Comment 28 by bokan@chromium.org, Oct 24 2017

Cc: bokan@chromium.org
Owner: sahel@chromium.org
This issue still exists in ubuntu 16.04 and google chrome: 63.0.3239.132

The workaround as mentioned by dandv@google.com is to set `synclient CoastingSpeed=0` or add `Option "CoastingSpeed" "0"` to synaptics config in Xorg (/usr/share/X11/xorg.conf.d/70-synaptics.conf in ubuntu 16.04). 

The problem is, that without "coasting" browser is less attractive to scroll.

+1 to fix that and also fix the 526463
 Issue 801874  has been merged into this issue.
Blockedon: 599497
I have a fix that ignores zooming if the first wheel event in the sequence doesn't have the ctrl modifier.

After today's discussion with dtapuska@ and bokan@ we decided to fix the issue by distinguishing wheel events from wheel and trackpad on Windows, and Linux, and disable ctrl zoom for wheel events from trackpads.

Comment 32 Deleted

This is a Synaptics driver bug, not a Chrome bug. Pressing the ctrl key should stop an inertial scroll (it seems to already do this, but not immediately, press another key while inertial scrolling to see this). The bug also happens in every other program that supports ctrl-scroll to zoom (Windows Explorer, Notepad++). 
re comment 33

Years ago I remember using the Synaptics driver and not getting anything like this at all because the Synaptics driver did stop the inertial scroll on Ctrl key press. The Wacom driver on the other hand didn't, so one could argue it was a driver bug. They both send mouse wheel events.

With Precision Touchpad (PTP) however, mouse wheel events are only sent as a fallback when PTP events aren't handled by the application. I imagine having Chrome handle PTP events natively ( Issue 575670 ,  Issue 647140  and  Issue 779372 ) might fix the issue.
Cc: sahel@chromium.org
Owner: chaopeng@chromium.org
The fix for this should be landing in the next day or two behind a flag. We're hoping to have this fixed in M67.
Will this new flag allow us to disable ctrl+scroll/fling/coast zoom completely? Or only if control was pressed after the first wheel event (comment 31)?

I think it would be nice to have a flag that never allows zooming regardless whether ctrl was pressed before or after the first wheel event. I imagine there wouldn't be any driver issues with that approach.
The flag is for turn on Windows Precision Touchpad support. So on Windows after the flag ctrl+scroll/fling/coast will completely disable and you can use pinch gesture to zoom.
Thank you, that sounds great! But then maybe this shouldn't be blocked on  Issue #599497 ? If I'm not mistaken that's about distinguishing flings from actual scroll events (as in comment 31 here) on linux, which I guess isn't even necessary based on comment 37. So maybe it's already possible to disable ctrl+scroll/fling/coast zoom completely on linux too (even if pinch has issues), and you don't really have to deal with #599497 before making this flag available on linux as well.
re comment #38; no we need to invest in work to distinguish touchpad events from wheel events. In the current world they all look the same. So what you are asking is for us to disable ctrl-wheel entirely cause we don't know it came from the touchpad. 

The correct solution is to block on 599497. If you are a xinput2 expert we are always open to contributions from the community. 
> If you are a xinput2 expert we are always open to contributions from the community. 

I'm sorry, I'm really not :) I know nothing about linux drivers, I was just catching up on tickets related to this.

> no we need to invest in work to distinguish touchpad events from wheel events. In the current world they all look the same.

By wheel events are you referring to scrolling with an actual mouse wheel only (and not with a touchpad)? Because I didn't realise distinguishing mouse and touchpad scroll events is an issue as well. I haven't seen that mentioned anywhere.

> So what you are asking is for us to disable ctrl-wheel entirely cause we don't know it came from the touchpad.

Yes, I think that would be a very reasonable compromise. Personally, I'd even prefer that, even if it disables zoom for a mouse too. Again, my assumption is you wouldn't have to fix any linux driver issues in that case (i.e. #599497), and you could just disable zoom for all scroll related events regardless the actual device, and when exactly Ctrl was pressed. And if you do manage to fix #599497 later on then I imagine you would re-enable zoom but only if Ctrl was pressed before scrolling started. Although, even then, I'd still use an extension to disable that too: https://chrome.google.com/webstore/detail/zoomtoscroll/iaehfjjafflijdgfoglcpgjpgabghcel <- on linux this can't prevent zoom if Ctrl was pressed after scrolling started, only if Ctrl was pressed first. IMO the latter happens just as often unintentionally.
Re #40 - I believe removing ctrl-wheel zooming was discussed long, long ago but torches and pitchforks came out so I guess a good chunk of folks use it, I don't think we'll remove it.

Once  issue 599497  is fixed we can make it so that high-precision touchpads never cause ctrl-zooming (since that's a very unintuitive gesture) but actual mouse wheel+ctrl does zoom.  
Re: #41

That's ridiculous - it doesn't need to be removed. Just the ability to disable it with a simple option would eliminate a ton of unnecessary aggravation for users who experience this issue...
This is a very annoying behaviour. There was an entire chrome extensions https://chrome.google.com/webstore/detail/no-mousewheel-zoom/ckhlfagjncfmdieecfekjbpnnaekhlhd/ used by 10k users that served only to work around this issue (I do not know the author and have no ties with this extension). Since last chrome update it does not work, and this is a torture.
bigobangux@, I don't know how the extension works. I tried a common approach to prevent ctrl zoom and it works. So you may need to contact the author to update. And it is not related to this issue. This issue is about to prevent zooming when pressing ctrl and scroll on touchpad.

https://jsfiddle.net/9jmgL11m/2/
Status: Fixed (was: Assigned)
This issue fixed by sending event with precise delta flag in  Issue 599497 .

Sign in to add a comment