From e5800d738a34a2ed2358cef381d3b9b94954cabd Mon Sep 17 00:00:00 2001 From: michabr <82236305+michabr@users.noreply.github.com> Date: Wed, 9 Feb 2022 15:27:53 -0800 Subject: [PATCH] Fix position of newly created UI element (#7510) Signed-off-by: abrmich --- Gems/LyShine/Code/Editor/HierarchyMenu.cpp | 8 ++++++-- Gems/LyShine/Code/Editor/HierarchyWidget.cpp | 6 ++++-- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/Gems/LyShine/Code/Editor/HierarchyMenu.cpp b/Gems/LyShine/Code/Editor/HierarchyMenu.cpp index 004fe53354..4fb09ea1f8 100644 --- a/Gems/LyShine/Code/Editor/HierarchyMenu.cpp +++ b/Gems/LyShine/Code/Editor/HierarchyMenu.cpp @@ -387,7 +387,9 @@ void HierarchyMenu::New_ElementFromSlice(HierarchyWidget* hierarchy, AZ::Vector2 viewportPosition(-1.0f,-1.0f); // indicates no viewport position specified if (optionalPos) { - viewportPosition = QtHelpers::QPointFToVector2(*optionalPos); + // Convert position to render viewport coords + QPointF scaledPosition = *optionalPos * hierarchy->GetEditorWindow()->GetViewport()->WidgetToViewportFactor(); + viewportPosition = QtHelpers::QPointFToVector2(scaledPosition); } SliceMenuHelpers::CreateInstantiateSliceMenu(hierarchy, @@ -405,7 +407,9 @@ void HierarchyMenu::New_ElementFromSlice(HierarchyWidget* hierarchy, AZ::Vector2 viewportPosition(-1.0f,-1.0f); // indicates no viewport position specified if (optionalPos) { - viewportPosition = QtHelpers::QPointFToVector2(*optionalPos); + // Convert position to render viewport coords + QPointF scaledPosition = *optionalPos * hierarchy->GetEditorWindow()->GetViewport()->WidgetToViewportFactor(); + viewportPosition = QtHelpers::QPointFToVector2(scaledPosition); } hierarchy->GetEditorWindow()->GetSliceManager()->InstantiateSliceUsingBrowser(hierarchy, viewportPosition); } diff --git a/Gems/LyShine/Code/Editor/HierarchyWidget.cpp b/Gems/LyShine/Code/Editor/HierarchyWidget.cpp index 30cb7e51dc..cd80e5a278 100644 --- a/Gems/LyShine/Code/Editor/HierarchyWidget.cpp +++ b/Gems/LyShine/Code/Editor/HierarchyWidget.cpp @@ -1239,11 +1239,13 @@ void HierarchyWidget::AddElement(const QTreeWidgetItemRawPtrQList& selectedItems this, selectedItems, childIndex, - [optionalPos](AZ::Entity* element) + [this, optionalPos](AZ::Entity* element) { if (optionalPos) { - EntityHelpers::MoveElementToGlobalPosition(element, *optionalPos); + // Convert position to render viewport coords + QPoint scaledPosition = *optionalPos * GetEditorWindow()->GetViewport()->WidgetToViewportFactor(); + EntityHelpers::MoveElementToGlobalPosition(element, scaledPosition); } }); }