Skip to content

Verify the cursor handoff when it roams past the edge of the second screen #91

Description

@nbkdoesntknowcoding

What is unverified

Push the cursor past the far edge of the second screen and it should keep going onto the rest of the Mac's desktop. The receiver takes a pointer lock and switches to relative motion at that point, because the OS clamps the real pointer at the screen edge and an absolute position simply pins at the boundary. Moving back should return control automatically.

The clamping is covered by tests. The handoff itself has only ever been reasoned about. It is listed under "What isn't proven yet" and it is the one most likely to be subtly wrong, because it is a state machine spanning two machines with a pointer lock in the middle.

What to try

With input forwarding on (F8) and a receiver connected:

  1. Move the cursor off the far edge, slowly. Does it continue onto the Mac's other screens, or stop dead?
  2. Move it back. Does absolute positioning resume, or does it stay in relative mode?
  3. Do it fast. A quick flick is a different case from a slow drag, and the interesting bugs live there.
  4. Cross at a corner, where two edges meet.
  5. Press Esc mid-roam. It is documented as handing the pointer back — does it?
  6. Press F8 mid-roam, which should release forwarding entirely.
  7. Do it with the second display on the left versus the right. macOS usually places it left (feat: say which side the second screen is on #71), and the edge logic has to be symmetric.

What to record

  • Where it got stuck, if it did, and what state it was left in
  • Whether the pointer was ever lost — visible on neither screen — which would be the worst outcome and is a plausible one
  • Whether the badge showing forwarding is live stayed accurate

Why it needs a person

There is no way to simulate this honestly. It involves a real pointer lock, a real OS clamping a real cursor, and hand-eye judgement about whether the transition felt continuous. A test can assert the arithmetic; only a person can say it works.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't workinghelp wantedExtra attention is neededneeds-hardwareCannot be done without specific hardware to hand

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions