Skip to content

Select mode should show the plain arrow over a shape, not the move cursor #567

Description

@JArmandoAnaya

Hovering a box or a polygon with the Select tool shows the four-arrow move cursor. It
should show the ordinary arrow.

It is the most common hover in the editor, and it reads as though the object is about to be
dragged when the person is only picking it.

What changes

In Select mode, hovering a shape's body, its edge band, or a vertex of a selected polygon shows
the plain arrow. The hover highlight is unchanged and is what reports which shape a press
would take.

Unchanged:

  • A selected box's corner and side grips keep their directional resize cursors. Those name an
    axis, which is information the arrow cannot carry.
  • A drag actually in flight keeps the four-arrow cursor for its duration. That one reports what
    is happening rather than offering something that might.
  • Drawing tools keep the crosshair.

This reverses a decision that was argued in writing

affordance.ts currently carries the case for move:

A press in the 15-px band around a selected polygon picks it and starts a move, so move is
what the cursor owes. Showing default there would be the drawing-tool lie inverted -
under-promising rather than over - and still a disagreement with the table.

The counter-argument is about which outcome is being promised. A press on a shape selects
it, and only becomes a move if the pointer then travels. Selection is the common case by a wide
margin, so advertising the rarer one on every hover is the over-promise rather than the under.
The move stays exactly as reachable as it was.

The read-only viewer has held this position since it was written - default everywhere, with
the hot body kept, on the grounds that a highlight aids selection where a cursor change
advertises an edit. The two modes now differ in what they resolve rather than in what they
promise.

The reasoning is recorded at the change site and in DESIGN.md, so that the prose and the code
cannot drift apart.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestfrontendannotator / ui-core / app packages

    Type

    No type

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions