Ensure cursor shape changes when exiting window, fixes #37724
This commit is contained in:
parent
67e4082b1e
commit
d3adc53ad9
2 changed files with 6 additions and 1 deletions
|
@ -2083,7 +2083,11 @@ void Viewport::_gui_input_event(Ref<InputEvent> p_event) {
|
|||
Control *c = over;
|
||||
Vector2 cpos = pos;
|
||||
while (c) {
|
||||
cursor_shape = c->get_cursor_shape(cpos);
|
||||
if (gui.mouse_focus_mask != 0 || c->has_point(cpos)) {
|
||||
cursor_shape = c->get_cursor_shape(cpos);
|
||||
} else {
|
||||
cursor_shape = Control::CURSOR_ARROW;
|
||||
}
|
||||
cpos = c->get_transform().xform(cpos);
|
||||
if (cursor_shape != Control::CURSOR_ARROW) {
|
||||
break;
|
||||
|
|
|
@ -309,6 +309,7 @@ void Window::_event_callback(DisplayServer::WindowEvent p_event) {
|
|||
case DisplayServer::WINDOW_EVENT_MOUSE_ENTER: {
|
||||
_propagate_window_notification(this, NOTIFICATION_WM_MOUSE_ENTER);
|
||||
emit_signal("mouse_entered");
|
||||
DisplayServer::get_singleton()->cursor_set_shape(DisplayServer::CURSOR_ARROW); //restore cursor shape
|
||||
} break;
|
||||
case DisplayServer::WINDOW_EVENT_MOUSE_EXIT: {
|
||||
_propagate_window_notification(this, NOTIFICATION_WM_MOUSE_EXIT);
|
||||
|
|
Loading…
Reference in a new issue