diff --git a/src/MainProgram.cpp b/src/MainProgram.cpp index 2efd453..6159fab 100755 --- a/src/MainProgram.cpp +++ b/src/MainProgram.cpp @@ -98,6 +98,8 @@ void MainProgram::update() { deltaTime.update_time_since(); deltaTime.update_time_point(); + toolbar.initialize_io_before_update(); + for(auto& w : worlds) { if(w == world) w->focus_update(); diff --git a/src/Toolbar.cpp b/src/Toolbar.cpp index 0e5f590..1fd9cff 100644 --- a/src/Toolbar.cpp +++ b/src/Toolbar.cpp @@ -1886,7 +1886,8 @@ void Toolbar::file_picker_gui() { gui.pop_id(); } -void Toolbar::start_gui() { + +void Toolbar::initialize_io_before_update() { io->mouse.leftClick = main.input.mouse.leftClicks; io->mouse.rightClick = main.input.mouse.rightClicks; io->mouse.leftHeld = main.input.mouse.leftDown; @@ -1916,12 +1917,16 @@ void Toolbar::start_gui() { }; io->clipboard.textOut = std::nullopt; + if(io->acceptingTextInput) + main.input.text_input_silence_everything(); + io->acceptingTextInput = false; +} + +void Toolbar::start_gui() { gui.windowPos = Vector2f{0.0f, 0.0f}; gui.windowSize = main.window.size.cast() / final_gui_scale(); - io->hoverObstructed = false; - io->acceptingTextInput = false; gui.io = io; - + io->hoverObstructed = false; gui.begin(); } @@ -1941,8 +1946,6 @@ float Toolbar::final_gui_scale_not_fit() { void Toolbar::end_gui() { gui.end(); - if(io->acceptingTextInput) - main.input.text_input_silence_everything(); if(io->clipboard.textOut) main.input.set_clipboard_str(*io->clipboard.textOut); } diff --git a/src/Toolbar.hpp b/src/Toolbar.hpp index 39d0ab8..f6ebdb8 100644 --- a/src/Toolbar.hpp +++ b/src/Toolbar.hpp @@ -38,6 +38,7 @@ class Toolbar { std::string chatMessageInput; Toolbar(MainProgram& initMain); + void initialize_io_before_update(); void update(); void draw(SkCanvas* canvas); void color_selector_left(Vector4f* color);