Frontmatter
| id | 8987 |
| title | enhancement: GridDragScroll: Add delay and minDistance to prevent accidental drags |
| state | Closed |
| labels | enhancementaiperformance |
| assignees | tobiu |
| createdAt | Feb 4, 2026, 5:05 PM |
| updatedAt | Feb 5, 2026, 10:05 AM |
| githubUrl | https://github.com/neomjs/neo/issues/8987 |
| author | tobiu |
| commentsCount | 1 |
| parentIssue | null |
| subIssues | [] |
| subIssuesCompleted | 0 |
| subIssuesTotal | 0 |
| blockedBy | [] |
| blocking | [] |
| closedAt | Feb 5, 2026, 10:05 AM |
enhancement: GridDragScroll: Add delay and minDistance to prevent accidental drags
tobiu assigned to @tobiu on Feb 4, 2026, 5:12 PM

tobiu
Feb 4, 2026, 5:13 PM
Input from Gemini 3 Pro:
✦ Implemented
delay(100ms) andminDistance(5px) checks inGridDragScroll.
- Added
constructto bind handlers.- Refactored
onDragStartto initiate a monitoring phase.- Added
onMonitorMoveto check both time and distance criteria before transitioning to active drag.- This ensures drag operations are intentional and prevents accidental cursor changes on simple clicks.
tobiu closed this issue on Feb 5, 2026, 10:05 AM
Context
Currently,
Neo.main.addon.GridDragScrollinitiates a drag operation immediately upon amousedownortouchstartevent. This converts the cursor tograbbinginstantly, which can feel aggressive and lead to accidental scroll starts when the user merely intended to click or select.Objective
Adopt the
delayandminDistancepattern found inNeo.main.draggable.sensor.Mouseto ensure drag operations are intentional.Requirements
delay: Default to100(ms).minDistance: Default to5(px).mouseDownTime.mouseDownTimeout.onDragStartshould not immediately setactiveDragor change the cursor.mousemove/touchmove.Mouse.mjspattern):timeElapsed >= delaydistanceTravelled >= minDistanceGoal
Improve the "feel" of grid interactions by preventing accidental drags during normal click operations.