diff --git a/Source/Core/DolphinQt2/Host.cpp b/Source/Core/DolphinQt2/Host.cpp index a788a76af0fe..27af4c7a9153 100644 --- a/Source/Core/DolphinQt2/Host.cpp +++ b/Source/Core/DolphinQt2/Host.cpp @@ -115,9 +115,12 @@ void Host_UpdateProgressDialog(const char* caption, int position, int total) void Host_UpdateMainFrame() { } + void Host_RequestRenderWindowSize(int w, int h) { + emit Host::GetInstance()->RequestRenderSize(w, h); } + bool Host_UINeedsControllerState() { return Settings::Instance().IsControllerStateNeeded(); diff --git a/Source/Core/DolphinQt2/RenderWidget.cpp b/Source/Core/DolphinQt2/RenderWidget.cpp index 879f318ecf98..ea2611fa156b 100644 --- a/Source/Core/DolphinQt2/RenderWidget.cpp +++ b/Source/Core/DolphinQt2/RenderWidget.cpp @@ -5,6 +5,7 @@ #include #include +#include "Core/ConfigManager.h" #include "DolphinQt2/Host.h" #include "DolphinQt2/RenderWidget.h" #include "DolphinQt2/Settings.h" @@ -15,6 +16,12 @@ RenderWidget::RenderWidget(QWidget* parent) : QWidget(parent) setAttribute(Qt::WA_NoSystemBackground, true); connect(Host::GetInstance(), &Host::RequestTitle, this, &RenderWidget::setWindowTitle); + connect(Host::GetInstance(), &Host::RequestRenderSize, this, [this](int w, int h) { + if (!SConfig::GetInstance().bRenderWindowAutoSize || isFullScreen() || isMaximized()) + return; + + resize(w, h); + }); // We have to use Qt::DirectConnection here because we don't want those signals to get queued // (which results in them not getting called)