Merge pull request #42891 from gvaneyck/graph-begin-node-move-timing
Fix emit_signal timing for GraphEdit's begin/end node move
This commit is contained in:
commit
970d0d433b
2 changed files with 9 additions and 2 deletions
|
@ -775,6 +775,11 @@ void GraphEdit::_gui_input(const Ref<InputEvent> &p_ev) {
|
|||
}
|
||||
|
||||
if (mm.is_valid() && dragging) {
|
||||
if (!moving_selection) {
|
||||
emit_signal("_begin_node_move");
|
||||
moving_selection = true;
|
||||
}
|
||||
|
||||
just_selected = true;
|
||||
drag_accum += mm->get_relative();
|
||||
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()) {
|
||||
emit_signal("_begin_node_move");
|
||||
|
||||
for (int i = get_child_count() - 1; i >= 0; i--) {
|
||||
GraphNode *gn = Object::cast_to<GraphNode>(get_child(i));
|
||||
if (gn && gn->is_selected()) {
|
||||
gn->set_drag(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (moving_selection) {
|
||||
emit_signal("_end_node_move");
|
||||
moving_selection = false;
|
||||
}
|
||||
|
||||
dragging = false;
|
||||
|
|
|
@ -98,6 +98,7 @@ private:
|
|||
|
||||
bool dragging;
|
||||
bool just_selected;
|
||||
bool moving_selection;
|
||||
Vector2 drag_accum;
|
||||
|
||||
float zoom;
|
||||
|
|
Loading…
Reference in a new issue