Merge pull request #4914 from vitor-k/windows-coffee
Fix to Windows sleep issues
This commit is contained in:
		@@ -18,6 +18,9 @@
 | 
			
		||||
#ifdef __APPLE__
 | 
			
		||||
#include <unistd.h> // for chdir
 | 
			
		||||
#endif
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
#include <windows.h>
 | 
			
		||||
#endif
 | 
			
		||||
#include "citra_qt/aboutdialog.h"
 | 
			
		||||
#include "citra_qt/applets/mii_selector.h"
 | 
			
		||||
#include "citra_qt/applets/swkbd.h"
 | 
			
		||||
@@ -709,6 +712,18 @@ void GMainWindow::OnOpenUpdater() {
 | 
			
		||||
    updater->LaunchUI();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void GMainWindow::PreventOSSleep() {
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
    SetThreadExecutionState(ES_CONTINUOUS | ES_SYSTEM_REQUIRED | ES_DISPLAY_REQUIRED);
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void GMainWindow::AllowOSSleep() {
 | 
			
		||||
#ifdef _WIN32
 | 
			
		||||
    SetThreadExecutionState(ES_CONTINUOUS);
 | 
			
		||||
#endif
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool GMainWindow::LoadROM(const QString& filename) {
 | 
			
		||||
    // Shutdown previous session if the emu thread is still active...
 | 
			
		||||
    if (emu_thread != nullptr)
 | 
			
		||||
@@ -899,6 +914,8 @@ void GMainWindow::ShutdownGame() {
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    AllowOSSleep();
 | 
			
		||||
 | 
			
		||||
    discord_rpc->Pause();
 | 
			
		||||
    OnStopRecordingPlayback();
 | 
			
		||||
    emu_thread->RequestStop();
 | 
			
		||||
@@ -1216,6 +1233,8 @@ void GMainWindow::OnStartGame() {
 | 
			
		||||
        movie_record_path.clear();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    PreventOSSleep();
 | 
			
		||||
 | 
			
		||||
    emu_thread->SetRunning(true);
 | 
			
		||||
    qRegisterMetaType<Core::System::ResultStatus>("Core::System::ResultStatus");
 | 
			
		||||
    qRegisterMetaType<std::string>("std::string");
 | 
			
		||||
@@ -1243,6 +1262,8 @@ void GMainWindow::OnPauseGame() {
 | 
			
		||||
    ui.action_Pause->setEnabled(false);
 | 
			
		||||
    ui.action_Stop->setEnabled(true);
 | 
			
		||||
    ui.action_Capture_Screenshot->setEnabled(false);
 | 
			
		||||
 | 
			
		||||
    AllowOSSleep();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void GMainWindow::OnStopGame() {
 | 
			
		||||
 
 | 
			
		||||
@@ -104,6 +104,9 @@ private:
 | 
			
		||||
    void ConnectWidgetEvents();
 | 
			
		||||
    void ConnectMenuEvents();
 | 
			
		||||
 | 
			
		||||
    void PreventOSSleep();
 | 
			
		||||
    void AllowOSSleep();
 | 
			
		||||
 | 
			
		||||
    bool LoadROM(const QString& filename);
 | 
			
		||||
    void BootGame(const QString& filename);
 | 
			
		||||
    void ShutdownGame();
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user