Bug 446952

Summary: Zoomable Scrollbar: Some people are having difficulty controlling horizontal vs vertical scrolling.
Product: [Applications] krita Reporter: Emmet O'Neill <emmetoneill.pdx>
Component: AnimationAssignee: Emmet O'Neill <emmetoneill.pdx>
Status: RESOLVED FIXED    
Severity: minor    
Priority: NOR    
Version: 5.0.0-beta5   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:

Description Emmet O'Neill 2021-12-13 21:37:22 UTC
Some people have complained about the zoomable scrollbar on the bottom of the timeline, saying that they are having a hard time panning comfortably without accidentally scrolling. Personally I don't find it too difficult to drag roughly horizontally or vertically with a pen or mouse, but we need to consider different levels of comfort, dexterity and accessibility.

https://krita-artists.org/t/animation-zoom-timeline/33074/9

Here are some potential solutions or workarounds:

1. Add an option (in-menu or config file) to disable zoomable scrollbar behavior.

2. Adjust the detection of horizontal vs vertical so as to prefer one "dominant axis" over the other. By broadening the detection angles of the dominant axis (thus narrowing the angle of the minor axis) it would [a] allow us to favor panning over zooming, decreasing the odds of accidentally zooming, and [b] it would move the "fault line" away from the 45-degree angles that we are naturally prone to drawing due to the arc of the forearm. 

3. Lock into horizontal or vertical mode per drag. If you start dragging horizontally, you will remain in horizontal mode until the drag event is over. Same thing with vertical mode. This way you only need to be precise at the very start of the drag (although, the precision at the start becomes *more* important).

4. Revert this design and everything else I've ever done because it's all terrible and go chase my dreams and never look back. :P
Comment 1 Emmet O'Neill 2021-12-17 02:22:33 UTC
Git commit c0c14f45d7bc325c48c11fda8beaed6e5c576ab7 by Emmet O'Neill.
Committed on 17/12/2021 at 02:19.
Pushed by emmetoneill into branch 'krita/5.0'.

Zoomable Scrollbar: Added option to disable in config file.

"scrollbarZoomEnabled=false" in ~/.config/kritarc

M  +1    -0    libs/ui/CMakeLists.txt
M  +9    -0    libs/ui/kis_config.cc
M  +3    -0    libs/ui/kis_config.h
M  +0    -1    libs/widgetutils/CMakeLists.txt
D  +0    -221  libs/widgetutils/kis_zoom_scrollbar.cpp
D  +0    -62   libs/widgetutils/kis_zoom_scrollbar.h
M  +1    -1    plugins/dockers/animation/KisAnimTimelineFramesView.cpp

https://invent.kde.org/graphics/krita/commit/c0c14f45d7bc325c48c11fda8beaed6e5c576ab7
Comment 2 Emmet O'Neill 2021-12-17 02:56:48 UTC
Git commit dcd640c8d12139a0d5362ac1de9d9bb46ad29eff by Emmet O'Neill.
Committed on 17/12/2021 at 02:30.
Pushed by emmetoneill into branch 'master'.

Zoomable Scrollbar: Added option to disable in config file.

"scrollbarZoomEnabled=false" in ~/.config/kritarc

(cherry picked from commit c0c14f45d7bc325c48c11fda8beaed6e5c576ab7)
(cherry picked from commit 78c80d1f86830757457aa250b9a923c5a4933194)

M  +1    -0    libs/ui/CMakeLists.txt
M  +9    -0    libs/ui/kis_config.cc
M  +3    -0    libs/ui/kis_config.h
R  +4    -3    libs/ui/widgets/kis_zoom_scrollbar.cpp [from: libs/widgetutils/kis_zoom_scrollbar.cpp - 097% similarity]
R  +10   -9    libs/ui/widgets/kis_zoom_scrollbar.h [from: libs/widgetutils/kis_zoom_scrollbar.h - 098% similarity]
M  +0    -1    libs/widgetutils/CMakeLists.txt
M  +1    -1    plugins/dockers/animation/KisAnimTimelineFramesView.cpp

https://invent.kde.org/graphics/krita/commit/dcd640c8d12139a0d5362ac1de9d9bb46ad29eff