Qt: Toggle Screensaver

This commit is contained in:
spycrab 2018-01-01 21:15:26 +00:00
parent 0dd52ca7ab
commit adada16603
2 changed files with 19 additions and 0 deletions

View File

@ -338,6 +338,7 @@ void MainWindow::Play(const std::optional<std::string>& savestate_path)
if (Core::GetState() == Core::State::Paused) if (Core::GetState() == Core::State::Paused)
{ {
Core::SetState(Core::State::Running); Core::SetState(Core::State::Running);
EnableScreenSaver(false);
} }
else else
{ {
@ -345,6 +346,7 @@ void MainWindow::Play(const std::optional<std::string>& savestate_path)
if (selection) if (selection)
{ {
StartGame(selection->GetFilePath(), savestate_path); StartGame(selection->GetFilePath(), savestate_path);
EnableScreenSaver(false);
} }
else else
{ {
@ -352,6 +354,7 @@ void MainWindow::Play(const std::optional<std::string>& savestate_path)
if (!default_path.isEmpty() && QFile::exists(default_path)) if (!default_path.isEmpty() && QFile::exists(default_path))
{ {
StartGame(default_path, savestate_path); StartGame(default_path, savestate_path);
EnableScreenSaver(false);
} }
else else
{ {
@ -364,6 +367,7 @@ void MainWindow::Play(const std::optional<std::string>& savestate_path)
void MainWindow::Pause() void MainWindow::Pause()
{ {
Core::SetState(Core::State::Paused); Core::SetState(Core::State::Paused);
EnableScreenSaver(true);
} }
void MainWindow::OnStopComplete() void MainWindow::OnStopComplete()
@ -441,6 +445,7 @@ bool MainWindow::RequestStop()
void MainWindow::ForceStop() void MainWindow::ForceStop()
{ {
BootManager::Stop(); BootManager::Stop();
EnableScreenSaver(true);
} }
void MainWindow::Reset() void MainWindow::Reset()
@ -801,6 +806,18 @@ void MainWindow::NetPlayQuit()
Settings::Instance().ResetNetPlayServer(); Settings::Instance().ResetNetPlayServer();
} }
void MainWindow::EnableScreenSaver(bool enable)
{
#if defined(HAVE_XRANDR) && HAVE_XRANDR
UICommon::EnableScreenSaver(
static_cast<Display*>(QGuiApplication::platformNativeInterface()->nativeResourceForWindow(
"display", windowHandle())),
winId(), enable);
#else
UICommon::EnableScreenSaver(enable);
#endif
}
bool MainWindow::eventFilter(QObject* object, QEvent* event) bool MainWindow::eventFilter(QObject* object, QEvent* event)
{ {
if (event->type() == QEvent::Close) if (event->type() == QEvent::Close)

View File

@ -115,6 +115,8 @@ private:
void OnStopRecording(); void OnStopRecording();
void OnExportRecording(); void OnExportRecording();
void EnableScreenSaver(bool enable);
void OnStopComplete(); void OnStopComplete();
void dragEnterEvent(QDragEnterEvent* event) override; void dragEnterEvent(QDragEnterEvent* event) override;
void dropEvent(QDropEvent* event) override; void dropEvent(QDropEvent* event) override;