Quick answer: Godot 4 Control's hover cursor shape persisting after the cursor moves away? mouse_exited signal not auto-restoring - explicitly reset on exit or use Input.set_default_cursor_shape.

Hover a button that sets cursor to POINTING_HAND. Move off; cursor stays as pointing hand.

Reset on mouse_exited

Connect to mouse_exited; set cursor back to ARROW. Pair with the mouse_entered handler.

Or use mouse_default_cursor_shape

Control property auto-applies on hover. Skip the manual signal handling.

Verify with cursor logging

Print cursor shape per frame during dev. Hover-test buttons; shape changes should be paired.

“Hover state is paired: enter and exit. Skipping the exit leaves the state stuck.”

Standardize on the Control property where possible. The signal handler approach is for cases that need conditional logic.

Related reading