1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-12 13:20:55 +00:00

Fix emit_signal timing for GraphEdit's begin/end node move

This commit is contained in:
Gabriel Van Eyck
2020-10-19 18:25:07 -07:00
parent 4467412c9f
commit fbc095dc78
2 changed files with 9 additions and 2 deletions

View File

@@ -775,6 +775,11 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) {
} }
if (mm.is_valid() && dragging) { if (mm.is_valid() && dragging) {
if (!moving_selection) {
emit_signal("_begin_node_move");
moving_selection = true;
}
just_selected = true; just_selected = true;
drag_accum += mm->get_relative(); drag_accum += mm->get_relative();
for (int i = get_child_count() - 1; i >= 0; i--) { for (int i = get_child_count() - 1; i >= 0; i--) {
@@ -881,16 +886,17 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) {
} }
if (drag_accum != Vector2()) { if (drag_accum != Vector2()) {
emit_signal("_begin_node_move");
for (int i = get_child_count() - 1; i >= 0; i--) { for (int i = get_child_count() - 1; i >= 0; i--) {
GraphNode *gn = Object::cast_to<GraphNode>(get_child(i)); GraphNode *gn = Object::cast_to<GraphNode>(get_child(i));
if (gn && gn->is_selected()) { if (gn && gn->is_selected()) {
gn->set_drag(false); gn->set_drag(false);
} }
} }
}
if (moving_selection) {
emit_signal("_end_node_move"); emit_signal("_end_node_move");
moving_selection = false;
} }
dragging = false; dragging = false;

View File

@@ -98,6 +98,7 @@ private:
bool dragging; bool dragging;
bool just_selected; bool just_selected;
bool moving_selection;
Vector2 drag_accum; Vector2 drag_accum;
float zoom; float zoom;