Skip to content

Override autoscroll when manually scrolling - #8489

Open
messmerd wants to merge 5 commits into
LMMS:masterfrom
messmerd:override-autoscroll
Open

Override autoscroll when manually scrolling#8489
messmerd wants to merge 5 commits into
LMMS:masterfrom
messmerd:override-autoscroll

Conversation

@messmerd

Copy link
Copy Markdown
Member

Overrides autoscroll while the user is manually adjusting the horizontal scrollbar in the Song Editor, Piano Roll, or Automation Editor in order to prevent an annoying UI bug where autoscroll fights with the user to set the viewport position.

Fixes #2236

@Itreza2

Itreza2 commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

This would be a real improvement ! I always disable auto-scroll because of this annoyance.

But you only account for scrolling using the scrollbar, and not at all for scrolling using Shift+mouse-wheel.
(Maybe the override behavior could be kept for the scrollbar, but additionally a mouse-wheel scroll could disable the auto-scrolling ?)

@regulus79 regulus79 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I tested this and it works as expected. It does not work when scrolling via the touch-pad, or when dragging the playhead on the timeline.

It appears this behavior was accidentally removed
@rubiefawn

Copy link
Copy Markdown
Contributor

I've also tested this and it looks good to me. Like Regulus said,

It does not work when scrolling via the touch-pad, or when dragging the playhead on the timeline.

It also does not consider Ctrl+Wheel, but reviewing the code shows that it specifically is listening for interaction with the horizontal scroll bar, so that checks out.

Is there anything else that ought to be done before this gets merged?

@messmerd

messmerd commented Jul 31, 2026

Copy link
Copy Markdown
Member Author

Overriding autoscroll in the way I did in this PR only really works for user interactions that have defined points where the interaction starts and stops. So it works for clicking and dragging the scrollbar, but not for scrolling via mouse wheel events or other discrete events.

How about if we solve the problem differently for discrete events: All manual interactions with the scrollbar temporarily override autoscroll - manual interactions that last over a period of time (i.e. clicking and dragging the scrollbar) only override autoscroll during that period, but discrete manual interactions cause autoscroll to remain overridden until the song is stopped.

@yohannd1

yohannd1 commented Aug 1, 2026

Copy link
Copy Markdown
Contributor

How about if we solve the problem differently for discrete events: All manual interactions with the scrollbar temporarily override autoscroll - manual interactions that last over a period of time (i.e. clicking and dragging the scrollbar) only override autoscroll during that period, but discrete manual interactions cause autoscroll to remain overridden until the song is stopped.

I think that's a good compromise. I also was thinking of maybe having some sort of timer so e.g. any manual interaction pauses it for 3 seconds, and thus if no interaction is done for that period it goes back to autoscroll. It might feel clunkier though, since you'd have to keep moving to check something.

@messmerd messmerd added the needs testing This pull request needs more testing label Aug 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

bug gui needs testing This pull request needs more testing

Projects

None yet

Development

Successfully merging this pull request may close these issues.

'override' auto-scrolling

5 participants