From a181a4d51d83d931e9048f864137b807e4531991 Mon Sep 17 00:00:00 2001 From: Yousef Khadadeh Date: Tue, 7 Apr 2026 20:33:48 +0300 Subject: [PATCH] Fixed GUI resize --- src/InputManager.cpp | 2 -- src/InputManager.hpp | 2 -- src/MainProgram.cpp | 18 +++++++++++++++++- src/MainProgram.hpp | 1 + src/Toolbar.cpp | 1 + src/main.cpp | 7 +------ 6 files changed, 20 insertions(+), 11 deletions(-) diff --git a/src/InputManager.cpp b/src/InputManager.cpp index fabc0e0..c5972b1 100644 --- a/src/InputManager.cpp +++ b/src/InputManager.cpp @@ -1060,7 +1060,5 @@ void InputManager::update() { void InputManager::frame_reset(const Vector2i& windowSize) { cursorIcon = SystemCursorType::DEFAULT; - - toggleFullscreen = false; hideCursor = false; } diff --git a/src/InputManager.hpp b/src/InputManager.hpp index 6ae7887..5618e66 100644 --- a/src/InputManager.hpp +++ b/src/InputManager.hpp @@ -63,8 +63,6 @@ struct InputManager { } cursorIcon; bool hideCursor = false; - bool toggleFullscreen = false; - struct KeyData { bool held = false; std::chrono::steady_clock::time_point lastPressTime; diff --git a/src/MainProgram.cpp b/src/MainProgram.cpp index 6a74aa8..770fdd1 100755 --- a/src/MainProgram.cpp +++ b/src/MainProgram.cpp @@ -361,7 +361,18 @@ void MainProgram::input_key_callback(const InputManager::KeyCallbackArgs& key) { } case InputManager::KEY_FULLSCREEN: { if(key.down && !key.repeat) - input.toggleFullscreen = true; + toggle_full_screen(); + break; + } + case InputManager::KEY_SAVE: { + if(key.down && !key.repeat) + toolbar.save_func(); + break; + } + case InputManager::KEY_SAVE_AS: { + if(key.down && !key.repeat) + toolbar.save_as_func(); + break; } } g.input_key_callback(key); @@ -451,6 +462,11 @@ void MainProgram::input_window_scale_callback(const InputManager::WindowScaleCal post_callback(); } +void MainProgram::toggle_full_screen() { + window.fullscreen = !window.fullscreen; + SDL_SetWindowFullscreen(window.sdlWindow, window.fullscreen); +} + void MainProgram::close_set_to_close_tabs() { if(!tabsToClose.empty()) { std::erase_if(worlds, [&](auto& w) { diff --git a/src/MainProgram.hpp b/src/MainProgram.hpp index b4599fb..95cc68c 100644 --- a/src/MainProgram.hpp +++ b/src/MainProgram.hpp @@ -102,6 +102,7 @@ class MainProgram { void update_scale_and_density(); float get_scale_and_density_factor_gui(); bool app_close_requested(); + void toggle_full_screen(); void refresh_draw_surfaces(); diff --git a/src/Toolbar.cpp b/src/Toolbar.cpp index d6c6006..c0f51e6 100644 --- a/src/Toolbar.cpp +++ b/src/Toolbar.cpp @@ -320,6 +320,7 @@ bool Toolbar::app_close_requested() { add_world_to_close_popup_data(w); } closePopupData.closeAppWhenDone = true; + main.g.gui.set_to_layout(); return closePopupData.worldsToClose.empty(); } diff --git a/src/main.cpp b/src/main.cpp index a370725..91da8d6 100755 --- a/src/main.cpp +++ b/src/main.cpp @@ -650,11 +650,6 @@ SDL_AppResult SDL_AppIterate(void *appstate) { if(mS.m->setToQuit) return SDL_APP_SUCCESS; - if(mS.m->input.toggleFullscreen) { - SDL_SetWindowFullscreen(mS.window, !mS.m->window.fullscreen); - mS.m->window.fullscreen = !mS.m->window.fullscreen; - } - if(mS.m->input.hideCursor) { SDL_HideCursor(); SDL_SetCursor(mS.hiddenCursor); // Using this because SDL hidden cursor sometimes doesnt work @@ -840,7 +835,7 @@ SDL_AppResult SDL_AppEvent(void *appstate, SDL_Event *event) { } #endif - return SDL_APP_CONTINUE; + return mS.m->setToQuit ? SDL_APP_SUCCESS : SDL_APP_CONTINUE; } void SDL_AppQuit(void *appstate, SDL_AppResult result) {