Skip to content

Cursor doesn't handle non-rectangular screen bounds correctly #129

Description

@1j01

In a multi-monitor setup, i.e. with multiple displays connected, if the screens are different sizes, or they're configured strangely, the overall virtual screen space can be non-rectangular.

Screen layout with dead zones. Dead zones are the area within the minimum bounding rectangle of all screens but outside any specific screen. (Diagram drawn with Tracky Mouse!)

Currently, the mouse moves across screens seamlessly where they connect, but if it moves into the dead space, it triggers Manual Takeback mode, because the mouse stops following the position it tries to set it to, so it assumes the user moved a physical mouse.

Instead it should take non-rectangular bounds into account and collide with the borders. If it hits a dead zone horizontally, it should continue to move vertically, and visa versa, as well as being able to move back away from the dead zone of course.

Assorted notes:

  • Switching to sending relative mouse movements would impact this feature, but not necessarily help fix it (though it seems like it would help with other things). It might be an orthogonal change, but deserves some consideration. Consider switching to go-based mouse driver with relative movements first.
  • Multi-monitor support was introduced in Tracky Mouse 2.8.0
  • The above diagram was drawn in JS Paint using Tracky Mouse!

Metadata

Metadata

Assignees

No one assigned

    Labels

    affects:desktop-appAffects the Electron appbugSomething isn't working

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions