Skip to content

[Feature Request] Pen-only drawing mode: touch input for gestures only, never draws #75

@eonfathom

Description

@eonfathom

Summary

Request: a Tablet settings toggle so that touch input never draws and is used only for navigation gestures (pinch zoom, pan, rotate), while the pen and mouse remain the only inputs that activate the current tool.

This is the standard behavior in most pen-first canvas apps (Clip Studio's "use different tools with finger and pen", Krita's "enable touch painting" toggle, Concepts, Adobe Fresco's "gestures only" finger setting). If you have a stylus, there is rarely a reason to want fingers to make marks, and it eliminates an entire class of palm rejection and gesture race condition bugs.

Motivating bugs

On the desktop app, palm rejection is mostly good except around touch gestures. Two related issues:

Bug 1: Stray dots when pinch zooming with an inking tool selected

  1. Select the brush tool (or any inking tool)
  2. Pinch to zoom in or out with two fingers
  3. One or two stray dots are added to the canvas, usually at the position of the first finger contact

My guess at the cause: the first finger lands a few ms before the second, and that contact is committed to the active tool before the gesture recognizer identifies a pinch.

Bug 2: Phantom stroke connecting the previous contact point to a new touch

Sometimes a new touch draws (or erases) a straight line from the last point of contact to the current touch position, as if the input had been dragged between the two points. With the brush selected, it inks along that line. With the eraser selected, it erases along that line, which can destroy strokes nowhere near where I actually touched.

My guess at the cause: the in-progress stroke isn't finalized when the previous contact lifts, so the next touch-down is treated as a continuation of the same stroke and the app interpolates between the stale last point and the new contact point.

A "touch never draws" mode would make both of these moot for stylus users, since finger contacts would only ever feed the gesture handler. Independent of the toggle, Bug 2 probably warrants a fix on its own (finalize or discard stroke state on contact-up), and Bug 1 could be handled the way OneNote and Concepts do it: buffer the first touch briefly and cancel it retroactively if a second finger arrives.

Environment

  • InfiniPaint v0.6.0, installer version
  • Windows 11
  • Wacom Cintiq Pro 27 (4K, 10-point multi-touch), drawing with the Wacom Pro Pen, navigating with touch gestures
  • Pen input works great otherwise. Pressure, smoothing, and general inking feel are all good

Suggested implementation

A checkbox under Settings -> Tablet, e.g. "Touch input is gestures only (pen/mouse draws)". Default off to preserve current behavior for finger drawers, but anyone using a stylus would turn it on immediately.

Thanks for building this. The infinite zoom is the real deal, and the ink quality is closer to OneNote (my benchmark for fast ink) than anything else I've tried with a true infinite canvas.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions