From d06824809f79b9000cdaa9e890576e9817876855 Mon Sep 17 00:00:00 2001 From: LittleWhite Date: Wed, 26 Aug 2015 22:04:12 +0200 Subject: Fix for the refresh issue when no rendering is done --- src/citra_qt/bootmanager.cpp | 11 ++++++++++- src/citra_qt/bootmanager.h | 7 ++++--- 2 files changed, 14 insertions(+), 4 deletions(-) (limited to 'src') diff --git a/src/citra_qt/bootmanager.cpp b/src/citra_qt/bootmanager.cpp index bb9b204f3..b19b367e1 100644 --- a/src/citra_qt/bootmanager.cpp +++ b/src/citra_qt/bootmanager.cpp @@ -19,8 +19,8 @@ #include "core/settings.h" #include "core/system.h" -#include "video_core/video_core.h" #include "video_core/debug_utils/debug_utils.h" +#include "video_core/video_core.h" #define APP_NAME "citra" #define APP_VERSION "0.1-" VERSION @@ -86,6 +86,9 @@ public: } void paintEvent(QPaintEvent* ev) override { + if (do_painting) { + QPainter painter(this); + } } void resizeEvent(QResizeEvent* ev) override { @@ -93,8 +96,12 @@ public: parent->OnFramebufferSizeChanged(); } + void DisablePainting() { do_painting = false; } + void EnablePainting() { do_painting = true; } + private: GRenderWindow* parent; + bool do_painting; }; GRenderWindow::GRenderWindow(QWidget* parent, EmuThread* emu_thread) : @@ -270,10 +277,12 @@ void GRenderWindow::OnMinimalClientAreaChangeRequest(const std::pairemu_thread = emu_thread; + child->DisablePainting(); } void GRenderWindow::OnEmulationStopping() { emu_thread = nullptr; + child->EnablePainting(); } void GRenderWindow::showEvent(QShowEvent * event) { diff --git a/src/citra_qt/bootmanager.h b/src/citra_qt/bootmanager.h index 2fd611367..0a9d263b8 100644 --- a/src/citra_qt/bootmanager.h +++ b/src/citra_qt/bootmanager.h @@ -12,11 +12,12 @@ #include "common/emu_window.h" #include "common/thread.h" -class QScreen; class QKeyEvent; +class QScreen; -class GRenderWindow; +class GGLWidgetInternal; class GMainWindow; +class GRenderWindow; class EmuThread : public QThread { @@ -137,7 +138,7 @@ signals: private: void OnMinimalClientAreaChangeRequest(const std::pair& minimal_size) override; - QGLWidget* child; + GGLWidgetInternal* child; QByteArray geometry; -- cgit v1.2.3