diff options
Diffstat (limited to 'editor/plugins/collision_shape_2d_editor_plugin.cpp')
| -rw-r--r-- | editor/plugins/collision_shape_2d_editor_plugin.cpp | 82 |
1 files changed, 40 insertions, 42 deletions
diff --git a/editor/plugins/collision_shape_2d_editor_plugin.cpp b/editor/plugins/collision_shape_2d_editor_plugin.cpp index 70cc81efb0..e2184c6158 100644 --- a/editor/plugins/collision_shape_2d_editor_plugin.cpp +++ b/editor/plugins/collision_shape_2d_editor_plugin.cpp @@ -302,7 +302,7 @@ void CollisionShape2DEditor::commit_handle(int idx, Variant &p_org) { undo_redo->commit_action(); } -bool CollisionShape2DEditor::forward_gui_input(const InputEvent &p_event) { +bool CollisionShape2DEditor::forward_gui_input(const Ref<InputEvent> &p_event) { if (!node) { return false; @@ -316,68 +316,66 @@ bool CollisionShape2DEditor::forward_gui_input(const InputEvent &p_event) { return false; } - switch (p_event.type) { - case InputEvent::MOUSE_BUTTON: { - const InputEventMouseButton &mb = p_event.mouse_button; + Ref<InputEventMouseButton> mb = p_event; - Transform2D gt = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); + if (mb.is_valid()) { - Point2 gpoint(mb.x, mb.y); + Transform2D gt = canvas_item_editor->get_canvas_transform() * node->get_global_transform(); - if (mb.button_index == BUTTON_LEFT) { - if (mb.pressed) { - for (int i = 0; i < handles.size(); i++) { - if (gt.xform(handles[i]).distance_to(gpoint) < 8) { - edit_handle = i; + Point2 gpoint(mb->get_pos().x, mb->get_pos().y); - break; - } + if (mb->get_button_index() == BUTTON_LEFT) { + if (mb->is_pressed()) { + for (int i = 0; i < handles.size(); i++) { + if (gt.xform(handles[i]).distance_to(gpoint) < 8) { + edit_handle = i; + + break; } + } - if (edit_handle == -1) { - pressed = false; + if (edit_handle == -1) { + pressed = false; - return false; - } + return false; + } - original = get_handle_value(edit_handle); - pressed = true; + original = get_handle_value(edit_handle); + pressed = true; - return true; + return true; - } else { - if (pressed) { - commit_handle(edit_handle, original); + } else { + if (pressed) { + commit_handle(edit_handle, original); - edit_handle = -1; - pressed = false; + edit_handle = -1; + pressed = false; - return true; - } + return true; } } + } - return false; - - } break; + return false; + } - case InputEvent::MOUSE_MOTION: { - const InputEventMouseMotion &mm = p_event.mouse_motion; + Ref<InputEventMouseMotion> mm = p_event; - if (edit_handle == -1 || !pressed) { - return false; - } + if (mm.is_valid()) { - Point2 gpoint = Point2(mm.x, mm.y); - Point2 cpoint = canvas_item_editor->get_canvas_transform().affine_inverse().xform(gpoint); - cpoint = canvas_item_editor->snap_point(cpoint); - cpoint = node->get_global_transform().affine_inverse().xform(cpoint); + if (edit_handle == -1 || !pressed) { + return false; + } - set_handle(edit_handle, cpoint); + Point2 gpoint = mm->get_pos(); + Point2 cpoint = canvas_item_editor->get_canvas_transform().affine_inverse().xform(gpoint); + cpoint = canvas_item_editor->snap_point(cpoint); + cpoint = node->get_global_transform().affine_inverse().xform(cpoint); - return true; + set_handle(edit_handle, cpoint); - } break; + return true; } return false; |
