As of the 3.10 beta versions utilizing SDL3, setCursorVisible(false) no longer allows for unbounded mouse delta tracking. The hidden cursor remains constrained by the OS screen dimensions, preventing continuous movement tracking once the screen edge is reached.
Expected Behavior:
When the cursor is hidden (or captured), the engine should allow infinite mouse delta polling regardless of screen bounds, consistent with previous versions.
Actual Behavior:
The hidden cursor hits the screen edges and stops reporting delta movement.
This breaks dragging mechanics in custom editor applications. When using a "grab" action (such as pressing 'G' or hold-clicking to move a spatial), the spatial can only be moved a finite distance before the hidden cursor hits the screen edge and blocks further input. This forces a loop of dragging a few units, releasing, and re-grabbing to move an object across the scene.
Steps to Reproduce:
- Call setCursorVisible(false) to hide the cursor.
- Poll mouse delta to translate a spatial's position.
- Move the physical mouse continuously in one direction until the hidden cursor hits the screen edge.
- Observe that the delta stops updating and the spatial stops moving.
As of the 3.10 beta versions utilizing SDL3, setCursorVisible(false) no longer allows for unbounded mouse delta tracking. The hidden cursor remains constrained by the OS screen dimensions, preventing continuous movement tracking once the screen edge is reached.
Expected Behavior:
When the cursor is hidden (or captured), the engine should allow infinite mouse delta polling regardless of screen bounds, consistent with previous versions.
Actual Behavior:
The hidden cursor hits the screen edges and stops reporting delta movement.
This breaks dragging mechanics in custom editor applications. When using a "grab" action (such as pressing 'G' or hold-clicking to move a spatial), the spatial can only be moved a finite distance before the hidden cursor hits the screen edge and blocks further input. This forces a loop of dragging a few units, releasing, and re-grabbing to move an object across the scene.
Steps to Reproduce: