From 64a917b880e1fe2cd123771a44fc6e2e67150697 Mon Sep 17 00:00:00 2001 From: "C. J. Howard" Date: Sun, 24 Mar 2019 17:56:59 +0800 Subject: [PATCH] Fix fullscreen toggling when initially starting in fullscreen mode. --- README.md | 1 - src/game.cpp | 18 ++++++++++++++++++ 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 116afa0..c9d3a65 100644 --- a/README.md +++ b/README.md @@ -15,4 +15,3 @@ The source code for Antkeeper is licensed under the GNU General Public License, | OpenAL soft | | GNU GPL v2.0 | | | stb_image | Sean Barrett | Public Domain / MIT License | [`stb_image.h`](./src/stb/stb_image.h) | | stb_image_writer | Sean Barrett | Public Domain / MIT License | [`stb_image_writer.h`](./src/stb/stb_image_writer.h) | - diff --git a/src/game.cpp b/src/game.cpp index 5a5385c..93ec755 100644 --- a/src/game.cpp +++ b/src/game.cpp @@ -537,6 +537,24 @@ void Game::toggleFullscreen() { fullscreen = !fullscreen; window->setFullscreen(fullscreen); + + if (!fullscreen) + { + const Display* display = deviceManager->getDisplays()->front(); + int displayWidth = std::get<0>(display->getDimensions()); + int displayHeight = std::get<1>(display->getDimensions()); + + w = static_cast(windowedResolution.x); + h = static_cast(windowedResolution.y); + + // Determine window position + int x = std::get<0>(display->getPosition()) + displayWidth / 2 - w / 2; + int y = std::get<1>(display->getPosition()) + displayHeight / 2 - h / 2; + + window->setDimensions(w, h); + window->setPosition(x, y); + } + restringUI(); // Disable fullscreen toggles for 500ms