Fix the screen going black on pause after changing windows

More info: https://zeduckmaster.frama.io/2016/how-to-create-a-custom-rendering-in-a-qt5-widget/
This commit is contained in:
Pokechu22 2019-04-22 20:29:04 -07:00
parent ab44a7065d
commit 0cb27cc42c
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) {
// Stop filling the background once emulation starts, but fill it until then (Bug 10958)
SetFillBackground(Config::Get(Config::MAIN_RENDER_TO_MAIN) &&
state == Core::State::Uninitialized);
if (state == Core::State::Running)
@ -90,9 +91,15 @@ RenderWidget::RenderWidget(QWidget* parent) : QWidget(parent)
void RenderWidget::SetFillBackground(bool fill)
{
setAutoFillBackground(fill);
setAttribute(Qt::WA_OpaquePaintEvent, !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)

View File

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