Bug 342023

Summary: Arrow keys are moving the viewport over canvas to counter intuitive directions
Product: [Applications] krita Reporter: Tyson Tan <tysontanx>
Component: UsabilityAssignee: Krita Bugs <krita-bugs-null>
Severity: normal CC: halla, scottpetrovic
Priority: NOR    
Version: git master (please specify the git hash!)   
Target Milestone: ---   
Platform: Other   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:

Description Tyson Tan 2014-12-19 08:19:13 UTC
In Krita we can use arrow keys to move the viewport over canvas. However, the current implementation is counter intuitive, as it moves the canvas instead of the viewport. Meanwhile, in most browsers and image editors / viewers, things are done in an opposite way, which makes the experience in Krita feels odd.

Mozilla Firefox: On a long webpage >> Arrow key DOWN >> Scrolls DOWNWARD (Viewport moves DOWNWARD)
Shotwell: Zoom in a lot >> Arrow key UP >> Viewport moves UPWARD
MyPaint: Draw something >> Arrow key UP >> Viewport moves UPWARD
Inkscape: Ctrl+Arrow key UP >> Viewport moves UPWARD

I think another way to understand Arrow Key Actions is that when we press UP, we actually want to see the UPPER part of the picture, which is intuitive. You may also think of "moving the scroll bars around", not the image itself.

Reproducible: Always

Steps to Reproduce:
1. Creates a new document
2. Draw something
3. Press Arrow key UP

Actual Results:  
The whole picture moves UPWARD (the viewport moves DOWNWARD)

Expected Results:  
The whole picture moves DOWNWARD (the viewport moves UPWARD). Similar story for all directions.
Comment 1 Scott Petrovic 2015-01-12 02:49:46 UTC
It looks like the arrow keys are tied pretty closely with the panning functionality right now. 

I have also heard people mention using the arrow keys for other purposes. You can move around the canvas already with tools like panning and the scroll bars.

One person had the idea of using the arrow keys to move the selected layer's content. It was referred to as "nudging" a layer or selection. I am not sure if there is an existing way to do that right now in Krita.

I am not sure what other people think.
Comment 2 Tyson Tan 2015-01-13 01:50:30 UTC
I didn't mean to add a new fuction to the arrow keys. I was trying to point out: when panning with arrow keys in Krita, the canvas moves toward the opposite direction compared to almost all other graphics applications. So It just doesn't feel right and is confusing.
Comment 3 Halla Rempt 2015-01-30 11:45:11 UTC
Hm... This is already configurable in settings/canvas input settings/pan, but I really wonder if by default we shouldn't disable the arrow keys, like they are in photoshop or gimp, or assign them to move layer.
Comment 4 Halla Rempt 2015-01-30 12:06:06 UTC
Git commit cf966de573a62b6d361253409f886681d6645965 by Boudewijn Rempt.
Committed on 30/01/2015 at 12:03.
Pushed by rempt into branch 'calligra/2.9'.

They are still configurable (in any direction...), but after discussion
on irc, it seems nobody really uses them. In the future, we'll expand
the move tool to use the arrow keys to move the current layer.

M  +35   -35   krita/data/input/kritadefault.profile

Comment 5 Tyson Tan 2015-01-30 18:29:16 UTC
Hi Boud. Thank you for telling me about how to configure the pan keys. Very useful information.


Defending Arrow Keys to Pan

Sorry for not showing up in IRC for the discussion, but I frequently use arrow keys to pan -- a habit from Adobe Photoshop era, if I recalled correctly. And I'm pretty sure I'm not the only one out there, as I observed many others to have the same habit, too. Many popular image viewers and web browsers have been training us to do this, too. 

I don't think it is a good idea to disable pan using arrow keys by default – it worked before, people would be expecting it to work in the new version. It would be wiser to just change the default mapping to match the behavior of other popular apps.

Also notice that many tabletPCs ship with stylus with only ONE side switch. People cannot pan single-handedly with those. 

Both middle-click and space drags require the hand holding the stylus to switch task between painting and panning. This interrupts the flow.

Keeping the arrow keys for panning allows one to put two hands on two essential tasks respectively – one for panning, one for painting. This is what we do on real media: using left hand to move the paper, while the right hand to draw. Each hands does its own job, so the brain does not need to switch back and forth. Depriving this from Krita works against its philosophy of being an intuitive, painting oriented app.


Objection to Arrow Keys to Move Layers

As for using arrow keys to move layers by default...sorry, I think this is a really bad idea because:

You cannot precisely control how much a layer moves, as the shift amount of each step is a fixed amount larger than 1px. People will find it very clumsy and feel insecure for having not enough control.

You will need to nudge many times to get the job done. Too many steps destroys recent Undo History. Cumulative History sounds fun, but first, it's not enabled by default; second, it's not very predictable; and third, it interrupts the flow. Using Move Tool this would take only one history slot. 

It changes the whole layer by just one click. If the document was huge and the user mis-clicked the arrow keys, Krita would be stuck for seconds, especially on low-end PCs. On my tumblr some people think Penitum G3220/i3 is too high spec for them...so yeah...think about that.

Moving a layer by using arrow keys could be useful for web design scenarios where documents are relatively small, has a huge amount of layers that needs to be moved frequently. But how often does this kind of scenario happens, when you consider Krita's target users are digital painters?

I would suggest arrow keys to move a layer ONLY when using the following tools:
1) Move Tool
2) Transformation Tool
3) Crop Tool
Comment 6 Halla Rempt 2015-01-30 20:35:43 UTC
I agree with limiting the arrow keys to move stuff around to those tools -- but as for arrows panning, I checked with photoshop cs2 today, and that didn't pan, but maybe I did something wrong?
Comment 7 Tyson Tan 2015-01-31 02:25:18 UTC
When I tested it on PS/GIMP/Inkscape today, I found none of them allow arrow keys to pan. Interestingly, in my memory they all do... I must be generating false memories by crossing the experience of former Krita with image viewers and web browsers. As I use Krita almost exclusively, I took that function for granted. So this is really qualified as "just me". XD

But again, even though I use middle-click panning most of the time, I still click arrow keys unconsciously many times a day in attempt to pan the canvas. It really felt natural to me.

I think it probably has something to do with me using +/- to zoom exclusively. Combining with arrow keys to pan, it really felt natural to me because those keys are close together on the keyboard (I use a small laptop-layout keyboard). Anyway, it provides not much benefit to do so as Krita can do high quality zooming on any level -- unlike many other apps, which can only do that on certain fixed levels, forcing me to stick to fixed zoom levels to feel safe. 

If this function doesn't interfere with others, I would really like to see it stay by default. But it doesn't matter very much. I will follow your choice. 

I must also apology for jumping into conclusion blindingly without actually doing science! Sorry!