From 120e0b5b384566c89984aeea86ae517909ebaac1 Mon Sep 17 00:00:00 2001 From: Andrei Karas Date: Thu, 17 Dec 2015 22:52:07 +0300 Subject: Add support for full screen in nacl. --- src/actions/actions.cpp | 4 ++-- src/gui/widgets/tabs/setup_video.cpp | 6 ++++-- src/gui/windowmanager.cpp | 13 +++++++++++++ src/gui/windowmanager.h | 2 ++ 4 files changed, 21 insertions(+), 4 deletions(-) diff --git a/src/actions/actions.cpp b/src/actions/actions.cpp index 663c7d475..dec8539d3 100644 --- a/src/actions/actions.cpp +++ b/src/actions/actions.cpp @@ -41,6 +41,7 @@ #include "gui/gui.h" #include "gui/popupmanager.h" #include "gui/sdlinput.h" +#include "gui/windowmanager.h" #include "gui/popups/popupmenu.h" @@ -909,8 +910,7 @@ impHandler0(attackHuman) impHandler0(safeVideoMode) { - if (mainGraphics) - mainGraphics->setFullscreen(false); + WindowManager::setFullScreen(false); return true; } diff --git a/src/gui/widgets/tabs/setup_video.cpp b/src/gui/widgets/tabs/setup_video.cpp index e96320762..1212da022 100644 --- a/src/gui/widgets/tabs/setup_video.cpp +++ b/src/gui/widgets/tabs/setup_video.cpp @@ -177,7 +177,9 @@ Setup_Video::Setup_Video(const Widget2 *const widget) : #else mNoFrameCheckBox->setEnabled(false); mEnableResizeCheckBox->setEnabled(false); +#ifndef __native_client__ mFsCheckBox->setEnabled(false); +#endif // __native_client__ #endif int width = 600; @@ -214,10 +216,10 @@ void Setup_Video::apply() if (intToRenderType(config.getIntValue("opengl")) == RENDER_SOFTWARE) { #endif - if (!mainGraphics->setFullscreen(fullscreen)) + if (!WindowManager::setFullScreen(fullscreen)) { fullscreen = !fullscreen; - if (!mainGraphics->setFullscreen(fullscreen)) + if (!WindowManager::setFullScreen(fullscreen)) { std::stringstream errorMsg; if (fullscreen) diff --git a/src/gui/windowmanager.cpp b/src/gui/windowmanager.cpp index dfc72ab73..1959ac4a1 100644 --- a/src/gui/windowmanager.cpp +++ b/src/gui/windowmanager.cpp @@ -243,6 +243,19 @@ void WindowManager::resizeVideo(int actualWidth, } } +bool WindowManager::setFullScreen(const bool fs) +{ +#ifdef __native_client__ + naclPostMessage("set-fullscreen", + fs ? "on" : "off"); + return true; +#else + if (!mainGraphics) + return false; + return mainGraphics->setFullscreen(fs); +#endif +} + void WindowManager::applyGrabMode() { SDL::grabInput(mainGraphics->getWindow(), diff --git a/src/gui/windowmanager.h b/src/gui/windowmanager.h index 8acdce0fd..79a4a383a 100644 --- a/src/gui/windowmanager.h +++ b/src/gui/windowmanager.h @@ -57,6 +57,8 @@ namespace WindowManager int actualHeight, const bool always); + bool setFullScreen(const bool fs); + void applyScale(); #ifndef USE_SDL2 -- cgit v1.2.3-70-g09d2