Setting text box input no longer involves repeatedly setting it each frame

This commit is contained in:
Yousef Khadadeh 2026-03-01 12:09:27 +03:00
parent 8c11141ac5
commit e1e93b8a31
14 changed files with 271 additions and 212 deletions

View file

@ -259,20 +259,21 @@ void World::on_tab_in() {
void World::register_callbacks() {
drawProg.register_callbacks();
redoKeyCallback = main.input.keyCallbacks[InputManager::KEY_REDO].register_callback([&](auto& key) {
if(key.down && !key.repeat)
keyCallbacks[InputManager::KEY_REDO] = main.input.keyCallbacks[InputManager::KEY_REDO].register_callback([&](auto& key) {
if(key.down)
redo_with_checks();
});
undoKeyCallback = main.input.keyCallbacks[InputManager::KEY_UNDO].register_callback([&](auto& key) {
if(key.down && !key.repeat)
keyCallbacks[InputManager::KEY_UNDO] = main.input.keyCallbacks[InputManager::KEY_UNDO].register_callback([&](auto& key) {
if(key.down)
undo_with_checks();
});
}
void World::deregister_callbacks() {
drawProg.deregister_callbacks();
main.input.keyCallbacks[InputManager::KEY_REDO].deregister_callback(redoKeyCallback);
main.input.keyCallbacks[InputManager::KEY_UNDO].deregister_callback(undoKeyCallback);
for(auto& [key, callback] : keyCallbacks)
main.input.keyCallbacks[key].deregister_callback(callback);
keyCallbacks.clear();
}
void World::send_chat_message(const std::string& message) {