pencil2d / pencil

Pencil2D is an easy, intuitive tool to make 2D hand-drawn animations. Pencil2D is open source and cross-platform.
http://pencil2d.org
GNU General Public License v2.0
1.47k stars 273 forks source link

Inconsistent Tablet Input Events On Frame Selection & Dragging #1568

Open Jose-Moreno opened 3 years ago

Jose-Moreno commented 3 years ago

Issue Summary

There's a UX issue I noticed recently when using a stylus while dragging frames.

First it's important to note that to move a frame it has a two step process:

  1. First you need to select the frame
  2. Second you place the mouse cursor inside the selected frame, click over it and drag to move.

Moving the cursor inside of the frame itself won't move the frame, however once you the pointer outside of the frame container it will start moving across the layer.

Now the problem becomes apparent when comparing tablet stylus and mouse devices. While the threshold is the same for both the behavior is much different when you click & drag a previously unselected frame.

  1. Mouse: If you click, hold the button without releasing & drag the frame, the container will become immediately selected and allows the frame to be moved, just by using a single click.
  2. Pen Stylus: However while using the stylus clicking & dragging will select the frame but it won't allow you to move it, so you have to click twice in order to move the frame. This is honestly something that ends up being very annoying when I have to move a lot of frames around.

FWIW just from observation it seems like frame selection and dragging with Mouse is working on a Mouse Down event, whereas with Pen tablet seems to be working on Mouse Release

Expected Results

For consistency and efficiency the experience with dragging, moving, selecting frames should be identical between a mouse pointer device and a graphics tablet pen stylus

Steps to reproduce

  1. Open Pencil2D
  2. Shorten the scrub / playback cursor by double clicking on it in the frame ruler area. this way you'll see the first frame properly
  3. Notice the first frame is NOT selected. Only highlighted
  4. Mouse Test: Use your mouse and click over the frame with LMB. Without releasing the mouse button immediately start dragging the frame horizontally. When you stop make sure to deselect the frame (no dark grey tint)
  5. Tablet Test A: Assuming your tablet is adequately configured, use your stylus now and click over the frame with the pen primary button (nibble). Keep pushing down and drag horizontally. Notice that the frame does not move.
  6. Tablet Test B: Now try to click & drag again over the pre selected frame. Notice you can move it without problem.

System Information

Nightly Build Jan 4 2021

commit: 528aacbce7fee830959c539cd411676a96c271fe date: 2021-01-04_15:21:03

Operating System: Windows 10 (10.0) CPU Architecture: x86_64 Qt Version: 5.12.10

WACOM INTUOS 5 PTH-451. Wacom Driver version is 6.3.38-2. However I'm using Windows Ink driver instead. Wacom "disable windows ink" checkbox is turnedd off (and yes I tested with and without, it looks more like a problem with Pencil2D tablet input events that with a driver)

J5lx commented 8 months ago

@Jose-Moreno I just had a look at this as I briefly thought it might be referring to an issue I fixed a while back (it isn’t). Strangely, I can’t seem to reproduce this as you’ve described it – specifically the mouse part. To be clear, this is what I’m seeing:

  1. Short scrub, Frame is unselected (no gray fill)
  2. Mouse(LMB)/tablet(nibble) press on frame (without releasing) – frame becomes selected (gray fill)
  3. Move the pointer horizontally across the layer (still without releasing) – the frame remains selected and in its original position
  4. Mouse/tablet release (anywhere on screen) – the frame continues to remain selected and in its original position

This, to me, looks like the tablet behaviour you described – except I’m seeing this behaviour for both tablet and mouse, i.e. there is no inconsistency. It is also what I would expect to happen, as click-dragging is used to select frame ranges. Tested on Arch Linux and Windows 10 22H2, 528aacb and master (d513920).

Can you check if I read your report correctly or if I misunderstood something?