From 1c47a264943634d2be7c432795dd5979bdeccc84 Mon Sep 17 00:00:00 2001 From: nvsickle Date: Fri, 9 Apr 2021 14:19:41 -0700 Subject: [PATCH] Clarify the reason for the default view juggling in SetAsActiveViewport --- Code/Sandbox/Editor/EditorViewportWidget.cpp | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Code/Sandbox/Editor/EditorViewportWidget.cpp b/Code/Sandbox/Editor/EditorViewportWidget.cpp index f26d4ff1dc..31314abc89 100644 --- a/Code/Sandbox/Editor/EditorViewportWidget.cpp +++ b/Code/Sandbox/Editor/EditorViewportWidget.cpp @@ -2821,6 +2821,7 @@ void EditorViewportWidget::SetAsActiveViewport() auto viewportContext = m_pPrimaryViewport->m_renderViewport->GetViewportContext(); if (viewportContext) { + // Remove the old viewport's camera from the stack, as it's no longer the owning viewport viewportContextManager->PopView(defaultContextName, viewportContext->GetDefaultView()); viewportContextManager->RenameViewportContext(viewportContext, m_pPrimaryViewport->m_defaultViewportContextName); } @@ -2832,6 +2833,8 @@ void EditorViewportWidget::SetAsActiveViewport() auto viewportContext = m_renderViewport->GetViewportContext(); if (viewportContext) { + // Push our camera onto the default viewport's view stack to preserve camera state continuity + // Other views can still be pushed on top of our view for e.g. game mode viewportContextManager->PushView(defaultContextName, viewportContext->GetDefaultView()); viewportContextManager->RenameViewportContext(viewportContext, defaultContextName); }