Merge pull request #8026 from Pokechu22/fix-black-pause

Fix the screen going black on pause after changing windows
This commit is contained in:
Connor McLaughlin 2019-04-28 16:45:24 +10:00 committed by GitHub
commit 96c69fd048
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 9 additions and 1 deletions

View File

@ -52,6 +52,7 @@ RenderWidget::RenderWidget(QWidget* parent) : QWidget(parent)
}); });
connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this](Core::State state) { connect(&Settings::Instance(), &Settings::EmulationStateChanged, this, [this](Core::State state) {
// Stop filling the background once emulation starts, but fill it until then (Bug 10958)
SetFillBackground(Config::Get(Config::MAIN_RENDER_TO_MAIN) && SetFillBackground(Config::Get(Config::MAIN_RENDER_TO_MAIN) &&
state == Core::State::Uninitialized); state == Core::State::Uninitialized);
if (state == Core::State::Running) if (state == Core::State::Running)
@ -90,9 +91,15 @@ RenderWidget::RenderWidget(QWidget* parent) : QWidget(parent)
void RenderWidget::SetFillBackground(bool fill) void RenderWidget::SetFillBackground(bool fill)
{ {
setAutoFillBackground(fill);
setAttribute(Qt::WA_OpaquePaintEvent, !fill); setAttribute(Qt::WA_OpaquePaintEvent, !fill);
setAttribute(Qt::WA_NoSystemBackground, !fill); setAttribute(Qt::WA_NoSystemBackground, !fill);
setAutoFillBackground(fill); setAttribute(Qt::WA_PaintOnScreen, !fill);
}
QPaintEngine* RenderWidget::paintEngine() const
{
return autoFillBackground() ? QWidget::paintEngine() : nullptr;
} }
void RenderWidget::dragEnterEvent(QDragEnterEvent* event) void RenderWidget::dragEnterEvent(QDragEnterEvent* event)

View File

@ -19,6 +19,7 @@ public:
bool event(QEvent* event) override; bool event(QEvent* event) override;
void showFullScreen(); void showFullScreen();
QPaintEngine* paintEngine() const override;
signals: signals:
void EscapePressed(); void EscapePressed();