From feef500b391b492959b2db3a7699ad14c6a37892 Mon Sep 17 00:00:00 2001 From: Juan Linietsky Date: Wed, 20 Dec 2017 18:03:48 -0300 Subject: [PATCH] properly send mouse released event when grabbing modal focus, fixes #14854 --- scene/main/viewport.cpp | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/scene/main/viewport.cpp b/scene/main/viewport.cpp index ae855e803cc..c156b0df31d 100644 --- a/scene/main/viewport.cpp +++ b/scene/main/viewport.cpp @@ -2371,7 +2371,17 @@ List::Element *Viewport::_gui_show_modal(Control *p_control) { p_control->_modal_set_prev_focus_owner(0); if (gui.mouse_focus && !p_control->is_a_parent_of(gui.mouse_focus)) { - gui.mouse_focus->notification(Control::NOTIFICATION_MOUSE_EXIT); + Ref mb; + mb.instance(); + mb->set_position(gui.mouse_focus->get_local_mouse_position()); + mb->set_global_position(gui.mouse_focus->get_local_mouse_position()); + mb->set_button_index(gui.mouse_focus_button); + mb->set_pressed(false); + gui.mouse_focus->call_multilevel(SceneStringNames::get_singleton()->_gui_input, mb); + + //if (gui.mouse_over == gui.mouse_focus) { + // gui.mouse_focus->notification(Control::NOTIFICATION_MOUSE_EXIT); + //} gui.mouse_focus = NULL; }