[Bug]: Pen taps on sidebar rows start a drag and lose their click
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 62/100
- Issue type
- Bug
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- typescript
- Domain
- frontend
Research direction
The drag threshold lives in SIDEBAR_DRAG_DISTANCE and is applied by SidebarPointerSensor in apps/web/src/components/Sidebar.pointer.ts, wired up in apps/web/src/components/Sidebar.tsx. Start by reading how the sensor records pointerdown and when it switches into drag and installs the click suppressor. Done means a pen tap with a few pixels of slide still fires the row's onClick, while mouse drag behaviour and the settle, un-settle and wake buttons stay correct; check it with pointer-event tests that set pointerType to pen.
Written by the indexing model from the issue text.
Description
AI-generated
"Generated" means mostly the model, "Edited" means mostly me.
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
apps/web
Steps to reproduce
- On macOS, use a Wacom pen in pen (absolute) mode. Mine: Intuos S (CTL-4100WL) with Wacom Pen 4K; its 152 × 95 mm active area maps to a 1920 × 1080 pt display.
- Tap thread rows in the sidebar with the pen tip, 10–20 times.
Expected behavior
Every tap opens the thread.
Actual behavior
Some taps do nothing.
SidebarPointerSensor starts a row drag once the pointer moves more than SIDEBAR_DRAG_DISTANCE (6 px) from pointerdown, for every pointer type (Sidebar.tsx#L854, Sidebar.pointer.ts#L72-L82). Once dragging, it installs a document-capture click suppressor, so the row's onClick never runs.
On this tablet 6 px is about 0.5 mm of tip travel (152 mm / 1920 pt × 6). A pen tip slides that far during an ordinary tap; a mouse stays still while clicking. Chromium itself allows 20 px for a stylus click by default and 10 px on ChromeOS (gesture_configuration.h, gesture_configuration_aura.cc).
The same sensor backs the settle, un-settle and wake sweep buttons, so pen taps on them are affected too.
Impact
Minor bug or occasional failure
Version or commit
T3 Code (Beta) 0.1.3; the code above is unchanged on main @ 5211acfe95.
Environment
macOS 26.6.2, Electron 44.9.3, Wacom driver 6.4.6-3
Logs or stack traces
No response
Screenshots, recordings, or supporting files
No response
Workaround
Press without sliding the tip, then pause longer than the double-click interval before a retry: quicker retries arrive with detail > 1 and are skipped (#22058).
Related: #22058 (same symptom, other causes), #25442 (zero-button move before pointerup).
- Dominant language
- TypeScript
- Stars
- 24.8k
- Forks
- 6.4k
- Avg merge
- 2h 54m
- Merged PRs (30d)
- 350
Getting set up
Starts the project's dev container in your browser, under your own GitHub account.
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from pingdotgg/t3code
-
[Bug]: Guest messages near the 4,000-char limit fail with 400 "The request was not valid." because multipart turns \n into \r\nPossibly taken @juliusmarminge claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
pingdotgg/t3code#26523 · 1 comment ·
Maintainers usually reply within 1 day
-
[Bug]: preview_evaluate forbids WebMCP write tools even when the user explicitly asks for the changePossibly taken A pull request linked to this issue is open or already merged. Openbug needs-triage
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 60/100
pingdotgg/t3code#26340 · 1 comment ·
Maintainers usually reply within 1 day
All issues in pingdotgg/t3code
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
gnosis/gnosis_vpn#661 ·
Maintainers usually reply within 1 day
-
content-freshness: staleOwnedContent doc comments still say 'complete receipt' (follow-up to #7912)Opentriage:bug-verified
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Maintainers usually reply within 1 day
-
fix: reject sourceStorage/packagedStorage bucket that differs from the stack default (fail loud)Open
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
Eyevinn/open-videocore#1300 ·
Maintainers usually reply within 1 day
-
nextjs-tracking
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
cloudflare/vinext#4390 ·
Maintainers usually reply within 1 day
-
kind/bug
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
kubernetes-sigs/headlamp#8175 ·
Maintainers usually reply within 2 days