Bug 163582 - Scrolling after middle mouse click while editing in Writer accelerates out of control
Summary: Scrolling after middle mouse click while editing in Writer accelerates out of...
Status: RESOLVED FIXED
Alias: None
Product: LibreOffice
Classification: Unclassified
Component: Writer (show other bugs)
Version:
(earliest affected)
24.2.6.2 release
Hardware: x86-64 (AMD64) Windows (All)
: medium minor
Assignee: Marc Mondesir
URL:
Whiteboard: target:25.2.0 target:24.8.3 target:24...
Keywords:
Depends on:
Blocks:
 
Reported: 2024-10-22 22:33 UTC by Marc Mondesir
Modified: 2024-11-08 16:45 UTC (History)
2 users (show)

See Also:
Crash report or crash signature:


Attachments
Test document for scrolling (92.85 KB, application/vnd.oasis.opendocument.text)
2024-10-22 22:39 UTC, Marc Mondesir
Details
Mouse pointer after middle button press (2.51 KB, image/jpeg)
2024-10-24 18:46 UTC, Marc Mondesir
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Marc Mondesir 2024-10-22 22:33:59 UTC
Description:
After click mouse wheel and move pointer far up/down from initial click point, scrolling speed continually accelerates if mouse is left still or pointer moves out of the window sides. Writer scrolls "out of control" and jumps to end of document. First noticed by V Stuart https://bugs.documentfoundation.org/show_bug.cgi?id=119745#c94. Repro'd in Calc too.


Steps to Reproduce:
1. Open long document in Writer. Size window a little wider than document and most of screen height. Do not use fullscreen, that doesn't do it.
2. Click mouse wheel near center top of document window.
3. Move pointer down most of page vertically, then to either side and out of the window.
3b. Can also happen if move pointer down near bottom of page and stop moving mouse, or move pointer out bottom of window. But easier to repro moving off page to side.

Actual Results:
Scrolling speed increases with mouse pointer distance from click point. But past a certain distance, scrolling rapidly accelerates (more so if pointer is still) then jumps to end of document.

Expected Results:
Scrolling speed should increase with distance from wheel click, without making large jumps in document. Scroll speed should not accelerate while mouse pointer left still.


Reproducible: Always


User Profile Reset: No

Additional Info:
Same thing happens if start at end of document, click mouse wheel near bottom of window, and move pointer up. Repro'd in current release and daily build for 10/15/2024.

Version: 24.8.2.1 (X86_64) / LibreOffice Community
Build ID: 0f794b6e29741098670a3b95d60478a65d05ef13
CPU threads: 32; OS: Windows 11 X86_64 (10.0 build 22631); UI render: Skia/Vulkan; VCL: win
Locale: en-US (en_US); UI: en-US
Calc: threaded
Comment 1 Marc Mondesir 2024-10-22 22:39:00 UTC
Created attachment 197197 [details]
Test document for scrolling
Comment 2 Marc Mondesir 2024-10-22 22:52:59 UTC
Can someone check if this happens on macOS or Linux? And confirm it on another Windows system? (I left it "unconfirmed" status although I assigned it to myself to work on.)
Comment 3 Buovjaga 2024-10-23 04:08:02 UTC
(In reply to Marc Mondesir from comment #2)
> Can someone check if this happens on macOS or Linux? And confirm it on
> another Windows system? (I left it "unconfirmed" status although I assigned
> it to myself to work on.)

Status is NEW as Stuart reported it and you confirmed.
Comment 4 Patrick (volunteer) 2024-10-23 18:01:10 UTC
(In reply to Marc Mondesir from comment #2)
> Can someone check if this happens on macOS or Linux? And confirm it on
> another Windows system? (I left it "unconfirmed" status although I assigned
> it to myself to work on.)

I cannot reproduce this on macOS. On macOS, once the mouse has moved outside of the document window, no scrollwheel events are delivered to the document window. Apparently, on macOS, scrollwheel events are sent to the window under the mouse pointer even if it is not the focus window:

Version: 24.8.2.1 (AARCH64) / LibreOffice Community
Build ID: 0f794b6e29741098670a3b95d60478a65d05ef13
CPU threads: 8; OS: macOS 15.0.1; UI render: Skia/Metal; VCL: osx
Locale: en-CA (en_CA.UTF-8); UI: en-US
Calc: threaded
Comment 5 Marc Mondesir 2024-10-24 18:44:26 UTC
This scrolling is a mode activated by *pressing down* the mouse wheel; though some mice have a wheel that cannot be pressed down, only turned. I've seen that press called "middle mouse click" sometimes. An icon is placed by the press and the mouse pointer changes to a directional arrow. Then moving the mouse pointer up/down/left/right away from that icon does the actual scrolling. A second press (of the wheel or any mouse button) exits that scrolling mode. I attached a screenshot from Writer - the round icon is starting press position and the arrow above it is the mouse pointer after that.

Should I change the bug subject, maybe "Scrolling after middle mouse click" instead of "mouse wheel click scroll" to be more clear? Since turning the wheel to scroll is much more common.
Comment 6 Marc Mondesir 2024-10-24 18:46:23 UTC
Created attachment 197228 [details]
Mouse pointer after middle button press
Comment 7 Marc Mondesir 2024-10-24 18:49:56 UTC
Working on code fix.
Comment 8 Patrick (volunteer) 2024-10-24 21:07:57 UTC
(In reply to Marc Mondesir from comment #5)
> Should I change the bug subject, maybe "Scrolling after middle mouse click"
> instead of "mouse wheel click scroll" to be more clear? Since turning the
> wheel to scroll is much more common.

My USB mouse has a "pressable scrollwheel" so on macOS if I press and hold the scrollwheel (i.e. middle button) I see scrolling when I move the mouse pointer. As long as I keep pressing the scrollwheel, I can continue scrolling when I move the mouse pointer outside of the window.

I don't see any massive change in scroll speed on macOS inside or outside of the window so this probably is a Windows-only bug bug. But feel free to cc me on any Gerrit patch you submit and I'll test it out on macOS just to be safe.
Comment 9 Patrick (volunteer) 2024-10-24 21:12:42 UTC
(In reply to Patrick (volunteer) from comment #8)
> I don't see any massive change in scroll speed on macOS inside or outside of
> the window so this probably is a Windows-only bug bug. But feel free to cc
> me on any Gerrit patch you submit and I'll test it out on macOS just to be
> safe.

I spoke too soon. I just did the following and the document quickly jumped to the end of the document:

1. Press and hold scrollwheel in first page of long Writer document
2. Drag mouse directly to the right until outside of the document window
3. Stop moving mouse for a second and Writer moves to last page

So looks like this might be a bug in the cross-platform code.
Comment 10 Marc Mondesir 2024-10-25 17:28:31 UTC
(In reply to Patrick (volunteer) from comment #9)
> So looks like this might be a bug in the cross-platform code.
Thanks for checking. I'll cc you on the patch. You can also middle mouse click & release to "start scrolling mode" (at least in LO on Windows). That way you can move pointer to scroll without holding the wheel down the whole time. Then click again to end scrolling mode.
Comment 11 Commit Notification 2024-10-30 14:04:31 UTC
Marc Mondesir committed a patch related to this issue.
It has been pushed to "master":

https://git.libreoffice.org/core/commit/f9e2bc8d84fe729d7a501dc3acc6325e246f0b7d

tdf#163582: Fix scrolling distance increasing geometrically.

It will be available in 25.2.0.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 12 Patrick (volunteer) 2024-10-30 14:12:10 UTC
I have committed @Marc's fix for this bug. I also fixed two macOS bugs and, with those fixes, @Marc's fix works for me on macOS.

The fix should be in tomorrow's (31 October 2024) nightly master builds:

https://dev-builds.libreoffice.org/daily/master/current.html

Note for macOS testers: the nightly master build installer does not overwrite any LibreOffice official versions. Instead, it will be installed as a separate application called "LibreOfficeDev" in the /Applications folder.

Because this is a "test" build, you will need to do the following steps before you launch the LibreOfficeDev application:

1. Go to the Finder and navigate to the /Applications/Utilities folder
2. Launch the "Terminal" application
3. Paste the following command in the Terminal application window and press the Return key to execute the command:

   xattr -d com.apple.quarantine /Applications/LibreOfficeDev.app
Comment 13 Commit Notification 2024-11-08 10:47:54 UTC
Marc Mondesir committed a patch related to this issue.
It has been pushed to "libreoffice-24-8-3":

https://git.libreoffice.org/core/commit/9ce61661bae805b2f47f48cce69e82577481f9b1

tdf#163582: Fix scrolling distance increasing geometrically.

It will be available in 24.8.3.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.
Comment 14 Commit Notification 2024-11-08 16:45:31 UTC
Marc Mondesir committed a patch related to this issue.
It has been pushed to "libreoffice-24-8":

https://git.libreoffice.org/core/commit/85ec0b184ac0e803f1fd0778a3397231e2d3289a

tdf#163582: Fix scrolling distance increasing geometrically.

It will be available in 24.8.4.

The patch should be included in the daily builds available at
https://dev-builds.libreoffice.org/daily/ in the next 24-48 hours. More
information about daily builds can be found at:
https://wiki.documentfoundation.org/Testing_Daily_Builds

Affected users are encouraged to test the fix and report feedback.