Merge pull request #39754 from akien-mga/canvasitemeditor-fix-dropped-scenes-position

CanvasItemEditor: Fix losing position for drag'n'dropped scenes
This commit is contained in:
Rémi Verschelde 2020-06-26 20:54:00 +02:00 committed by GitHub
commit b740f645f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 5 additions and 0 deletions

View File

@ -6149,6 +6149,11 @@ bool CanvasItemEditorViewport::_create_instance(Node *parent, String &path, cons
Vector2 target_pos = canvas_item_editor->get_canvas_transform().affine_inverse().xform(p_point); Vector2 target_pos = canvas_item_editor->get_canvas_transform().affine_inverse().xform(p_point);
target_pos = canvas_item_editor->snap_point(target_pos); target_pos = canvas_item_editor->snap_point(target_pos);
target_pos = parent_ci->get_global_transform_with_canvas().affine_inverse().xform(target_pos); target_pos = parent_ci->get_global_transform_with_canvas().affine_inverse().xform(target_pos);
// Preserve instance position of the original scene.
CanvasItem *instance_ci = Object::cast_to<CanvasItem>(instanced_scene);
if (instance_ci) {
target_pos += instance_ci->_edit_get_position();
}
editor_data->get_undo_redo().add_do_method(instanced_scene, "set_position", target_pos); editor_data->get_undo_redo().add_do_method(instanced_scene, "set_position", target_pos);
} }