From f6e98d501443908973341eac9d02c646ae1d0b3e Mon Sep 17 00:00:00 2001 From: nvsickle Date: Tue, 13 Apr 2021 11:08:22 -0700 Subject: [PATCH 1/3] Fix viewport context menu hiding cursor and sometimes popping up repeatedly --- .../AzToolsFramework/Viewport/EditorContextMenu.cpp | 2 +- Code/Sandbox/Editor/LegacyViewportCameraController.cpp | 1 - Code/Sandbox/Editor/ViewportManipulatorController.cpp | 4 ++-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/Code/Framework/AzToolsFramework/AzToolsFramework/Viewport/EditorContextMenu.cpp b/Code/Framework/AzToolsFramework/AzToolsFramework/Viewport/EditorContextMenu.cpp index 300820c2df..7fa9724d65 100644 --- a/Code/Framework/AzToolsFramework/AzToolsFramework/Viewport/EditorContextMenu.cpp +++ b/Code/Framework/AzToolsFramework/AzToolsFramework/Viewport/EditorContextMenu.cpp @@ -65,7 +65,7 @@ namespace AzToolsFramework if (!contextMenu.m_menu->isEmpty()) { - contextMenu.m_menu->popup(QCursor::pos()); + contextMenu.m_menu->exec(QCursor::pos()); } } } diff --git a/Code/Sandbox/Editor/LegacyViewportCameraController.cpp b/Code/Sandbox/Editor/LegacyViewportCameraController.cpp index 0c34706e24..44b722d222 100644 --- a/Code/Sandbox/Editor/LegacyViewportCameraController.cpp +++ b/Code/Sandbox/Editor/LegacyViewportCameraController.cpp @@ -342,7 +342,6 @@ bool LegacyViewportCameraControllerInstance::HandleInputChannelEvent(const AzFra m_inRotateMode = true; } - shouldConsumeEvent = true; shouldCaptureCursor = true; } else if (state == InputChannel::State::Ended) diff --git a/Code/Sandbox/Editor/ViewportManipulatorController.cpp b/Code/Sandbox/Editor/ViewportManipulatorController.cpp index b45dc711ee..910d037670 100644 --- a/Code/Sandbox/Editor/ViewportManipulatorController.cpp +++ b/Code/Sandbox/Editor/ViewportManipulatorController.cpp @@ -21,8 +21,8 @@ #include -static const auto ManipulatorPriority = AzFramework::ViewportControllerPriority::Highest; -static const auto InteractionPriority = AzFramework::ViewportControllerPriority::High; +static const auto ManipulatorPriority = AzFramework::ViewportControllerPriority::High; +static const auto InteractionPriority = AzFramework::ViewportControllerPriority::Low; namespace SandboxEditor { From bbec18d0300d817f0fa2cf5b63732a218b29d4c1 Mon Sep 17 00:00:00 2001 From: nvsickle Date: Wed, 14 Apr 2021 10:45:22 -0700 Subject: [PATCH 2/3] Fix initial camera position when working directly with Atom --- Gems/Camera/Code/Source/CameraComponentController.cpp | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/Gems/Camera/Code/Source/CameraComponentController.cpp b/Gems/Camera/Code/Source/CameraComponentController.cpp index e66de5b95b..2799d897d6 100644 --- a/Gems/Camera/Code/Source/CameraComponentController.cpp +++ b/Gems/Camera/Code/Source/CameraComponentController.cpp @@ -98,15 +98,16 @@ namespace Camera AZ_Assert(m_atomCamera, "Attempted to activate Atom camera before component activation"); const AZ::Name contextName = atomViewportRequests->GetDefaultViewportContextName(); - atomViewportRequests->PushView(contextName, m_atomCamera); - AZ::RPI::ViewportContextNotificationBus::Handler::BusConnect(contextName); - // Ensure the Atom camera is updated with our current transform state AZ::Transform localTransform; AZ::TransformBus::EventResult(localTransform, m_entityId, &AZ::TransformBus::Events::GetLocalTM); AZ::Transform worldTransform; AZ::TransformBus::EventResult(worldTransform, m_entityId, &AZ::TransformBus::Events::GetWorldTM); OnTransformChanged(localTransform, worldTransform); + + // Push the Atom camera after we make sure we're up-to-date with our component's transform to ensure the viewport reads the correct state + atomViewportRequests->PushView(contextName, m_atomCamera); + AZ::RPI::ViewportContextNotificationBus::Handler::BusConnect(contextName); UpdateCamera(); } } From 97d0f4267118e869a05a27b3fa7ab1102496a2f3 Mon Sep 17 00:00:00 2001 From: nvsickle Date: Wed, 14 Apr 2021 10:45:54 -0700 Subject: [PATCH 3/3] Enable EditorViewportWidget by default --- Code/Sandbox/Editor/ViewManager.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Code/Sandbox/Editor/ViewManager.cpp b/Code/Sandbox/Editor/ViewManager.cpp index b08c40cf2d..268bc19963 100644 --- a/Code/Sandbox/Editor/ViewManager.cpp +++ b/Code/Sandbox/Editor/ViewManager.cpp @@ -37,7 +37,7 @@ #include #include -AZ_CVAR(bool, ed_useAtomNativeViewport, false, nullptr, AZ::ConsoleFunctorFlags::Null, "Use the new Atom-native Editor viewport (experimental, not yet stable"); +AZ_CVAR(bool, ed_useAtomNativeViewport, true, nullptr, AZ::ConsoleFunctorFlags::Null, "Use the new Atom-native Editor viewport (experimental, not yet stable"); bool CViewManager::IsMultiViewportEnabled() {