diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Viewport/RenderViewportWidget.h b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Viewport/RenderViewportWidget.h index 69b99093f0..268285adc0 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Viewport/RenderViewportWidget.h +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Include/AtomToolsFramework/Viewport/RenderViewportWidget.h @@ -123,7 +123,6 @@ namespace AtomToolsFramework void OnTick(float deltaTime, AZ::ScriptTimePoint time) override; // QWidget overrides ... - void resizeEvent(QResizeEvent *event) override; bool event(QEvent* event) override; void enterEvent(QEvent* event) override; void leaveEvent(QEvent* event) override; diff --git a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Viewport/RenderViewportWidget.cpp b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Viewport/RenderViewportWidget.cpp index 83926ecc79..e8975c0b62 100644 --- a/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Viewport/RenderViewportWidget.cpp +++ b/Gems/Atom/Tools/AtomToolsFramework/Code/Source/Viewport/RenderViewportWidget.cpp @@ -194,13 +194,21 @@ namespace AtomToolsFramework m_controllerList->UpdateViewport({GetId(), AzFramework::FloatSeconds(deltaTime), m_time}); } - void RenderViewportWidget::resizeEvent([[maybe_unused]] QResizeEvent* event) - { - SendWindowResizeEvent(); - } - bool RenderViewportWidget::event(QEvent* event) { + // On some types of QEvents, a resize event is needed to make sure that the current viewport window + // needs to be updated based on a potential new surface dimensions. + switch (event->type()) + { + case QEvent::ScreenChangeInternal: + case QEvent::UpdateLater: + case QEvent::Resize: + SendWindowResizeEvent(); + break; + + default: + break; + } return QWidget::event(event); }