Skip to content

fix: touch and trackpad support for image diff slider#24

Open
zelon wants to merge 1 commit into
mainfrom
fix/image-diff-pointer-events
Open

fix: touch and trackpad support for image diff slider#24
zelon wants to merge 1 commit into
mainfrom
fix/image-diff-pointer-events

Conversation

@zelon
Copy link
Copy Markdown
Owner

@zelon zelon commented May 21, 2026

Summary

Replaces MouseEvent listeners with the Pointer Events API in ImageDiffViewer, enabling the slider and pan interactions to work on touch screens and trackpads in addition to mouse input.

Closes #20

Changes

  • onSliderMouseDownonSliderPointerDown (React.PointerEvent)
  • onPanMouseDownonPanPointerDown; left-button guard changed from e.button !== 0 to e.pointerType === "mouse" && e.button !== 0 so touch input is not blocked
  • Global mousemove/mouseup window listeners → pointermove/pointerup
  • setPointerCapture on drag start so events stay routed to the correct element even when the pointer moves outside it
  • touch-action: none on all draggable elements to prevent the browser from intercepting touch gestures as scroll

Test plan

  • Mouse drag on slider divider still works
  • Mouse drag for pan (zoom > 1) still works
  • Touch drag on slider divider moves the divider
  • Touch drag for pan works on a touch screen
  • No accidental page scroll while dragging on touch

https://claude.ai/code/session_01VLHEkn9xkvhAhyRYHRrtFw


Generated by Claude Code

Replaces onMouseDown/mousemove/mouseup with the Pointer Events API
so that the slider and pan interactions work on touch screens and
trackpads, not just mouse input.

Changes:
- onSliderMouseDown → onSliderPointerDown (React.PointerEvent)
- onPanMouseDown → onPanPointerDown, guards on pointerType instead of button
- Global mousemove/mouseup listeners → pointermove/pointerup
- setPointerCapture on drag start to keep events routed correctly
- touch-action: none on draggable elements to prevent browser scroll interference

Closes #20

https://claude.ai/code/session_01VLHEkn9xkvhAhyRYHRrtFw
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat: touch and trackpad support for image diff slider

2 participants