Override autoscroll when manually scrolling - #8489
Conversation
|
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. |
regulus79
left a comment
There was a problem hiding this comment.
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
|
I've also tested this and it looks good to me. Like Regulus said,
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? |
|
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. |
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. |
Also remove unused playTriggered() signal
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