Explorar o código

Fix GraphNode immediately losing focus

Closes: #30243

GraphNode immediately loses focus, and gives focus to its parent.

This fix changes implementation so that it does not transfer focus to its parent after receiving focus. Instead, it will transfer focus when the "close button" is pressed.
Emmanuel Barroga %!s(int64=6) %!d(string=hai) anos
pai
achega
381faf83c3
Modificáronse 1 ficheiros con 2 adicións e 2 borrados
  1. 2 2
      scene/gui/graph_node.cpp

+ 2 - 2
scene/gui/graph_node.cpp

@@ -599,6 +599,8 @@ void GraphNode::_gui_input(const Ref<InputEvent> &p_ev) {
 
 
 			Vector2 mpos = Vector2(mb->get_position().x, mb->get_position().y);
 			Vector2 mpos = Vector2(mb->get_position().x, mb->get_position().y);
 			if (close_rect.size != Size2() && close_rect.has_point(mpos)) {
 			if (close_rect.size != Size2() && close_rect.has_point(mpos)) {
+				//send focus to parent
+				get_parent_control()->grab_focus();
 				emit_signal("close_request");
 				emit_signal("close_request");
 				accept_event();
 				accept_event();
 				return;
 				return;
@@ -615,9 +617,7 @@ void GraphNode::_gui_input(const Ref<InputEvent> &p_ev) {
 				return;
 				return;
 			}
 			}
 
 
-			//send focus to parent
 			emit_signal("raise_request");
 			emit_signal("raise_request");
-			get_parent_control()->grab_focus();
 		}
 		}
 
 
 		if (!mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) {
 		if (!mb->is_pressed() && mb->get_button_index() == BUTTON_LEFT) {