GUI now catches text input again

This commit is contained in:
Yousef Khadadeh 2025-10-14 11:27:55 +03:00
parent 89dd5b5d81
commit 1ec7c717b2
3 changed files with 12 additions and 6 deletions

View file

@ -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();

View file

@ -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<float>() / 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);
}

View file

@ -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);