Fix offset in Viewport drag movement

The initial offset was using the mouse position when the threshold
was reached instead of the initial click position. This was adding
the drag threshold distance as an extra offset to the final
transformation.

Now the offset is calculated from the initial click position.
This commit is contained in:
Pablo Dobarro 2021-11-26 00:53:27 +01:00
parent 2681d93b8a
commit cfacd9c057
2 changed files with 2 additions and 2 deletions

View File

@ -2339,7 +2339,7 @@ bool CanvasItemEditor::_gui_input_select(const Ref<InputEvent> &p_event) {
if (selection2.size() > 0) {
drag_type = DRAG_MOVE;
drag_from = click;
drag_from = drag_start_origin;
_save_canvas_item_state(drag_selection);
}
return true;

View File

@ -1749,7 +1749,7 @@ void Node3DEditorViewport::_sinput(const Ref<InputEvent> &p_event) {
} else {
const bool movement_threshold_passed = _edit.original_mouse_pos.distance_to(_edit.mouse_pos) > 8 * EDSCALE;
if (clicked.is_valid() && movement_threshold_passed) {
_compute_edit(_edit.mouse_pos);
_compute_edit(_edit.original_mouse_pos);
clicked = ObjectID();
_edit.mode = TRANSFORM_TRANSLATE;