Skip to content

Canvas mode: separate viewport pan from object selection #32

@lidge-jun

Description

@lidge-jun

Source

Canvas Mode follow-up from devlog/_plan/0.24-canvas-mode/FOLLOW-UP-ISSUES.md and parent issue #22.

Goal

Separate true image viewport panning from Canvas object selection/move behavior.

Current state

  • CanvasViewport includes panX and panY fields.
  • Canvas zoom exists.
  • The current pan tool is effectively selection mode:
    • click selects object
    • shift-click toggles selection
    • drag selected object moves it
    • drag empty area creates selection box
  • There is no actual viewport pan behavior for zoomed images.

Scope

  • Decide the gesture model for viewport pan vs object selection.
  • Add actual viewport panning for zoomed Canvas view.
  • Avoid breaking existing selection, move, and selection-box behavior.
  • Define whether pan is a separate tool, a modifier gesture, or a mode inside the existing pan/select tool.
  • Keep keyboard zoom and Escape close behavior intact.

Out of scope

  • New annotation tools.
  • SVG/PPTX export.
  • Alpha export controls.
  • Full layer/object inspector.

Acceptance criteria

  • A zoomed canvas can be panned without moving selected objects accidentally.
  • Existing object selection, multi-select, and move still work.
  • Selection box remains available through an explicit, predictable gesture.
  • Panning state does not affect saved normalized annotation coordinates.
  • Tests cover viewport pan state, object move separation, and no regression in selection shortcuts.
  • Manual QA covers mouse/trackpad behavior at 1x and zoomed states.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions