Keep finger pan/zoom working after using the pen
After writing with the pen, fingers could no longer navigate: - every touch was ignored for 5 s after any pen activity (and for as long as a hover-capable pen stayed near the screen), - after that, a one-finger drag on a page drew ink instead of panning, - a one-finger drag on the background did nothing while an ink tool was on. Once a pen has been used, fingers now only pan and zoom. The 5 s session and hover lockouts only block finger ink; touches are still rejected while the pen is down, for palm-sized contacts and within 150 ms of pen activity. A finger drag off the page always pans. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01VsorPV3JeJRoZ1mD1pdvtL
This commit is contained in:
parent
fa2f491161
commit
bca1a6a407
4 changed files with 88 additions and 16 deletions
|
|
@ -271,8 +271,10 @@
|
|||
if (target.closest('.no-stage')) return;
|
||||
const p = local(e);
|
||||
|
||||
// Fingers ink only when enabled and no pen has been used; otherwise they pan/zoom.
|
||||
const fingerInks = tools.inking && settings.data.fingerDraw && !palm.penSeen;
|
||||
if (e.pointerType === 'touch') {
|
||||
const decision = palm.evaluate(e);
|
||||
const decision = palm.evaluate(e, fingerInks ? 'draw' : 'navigate');
|
||||
if (!decision.accept) return; // palm: ignore entirely
|
||||
touches.set(e.pointerId, p);
|
||||
if (touches.size >= 2) {
|
||||
|
|
@ -293,7 +295,7 @@
|
|||
const wantsPan =
|
||||
e.button === 1 ||
|
||||
spaceDown ||
|
||||
(e.pointerType === 'touch' && (!tools.inking || !settings.data.fingerDraw)) ||
|
||||
(e.pointerType === 'touch' && (!fingerInks || !onPage)) ||
|
||||
(e.pointerType === 'mouse' && e.button === 0 && !onPage && !target.closest('.ghost, .slot'));
|
||||
if (wantsPan) {
|
||||
if (onPage && !inEditor) doc.activeId = onPage;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue