From 86d248ed2b033fe36ce53b0387b2cbdcb69c0b72 Mon Sep 17 00:00:00 2001 From: aura Date: Tue, 28 Jul 2026 19:11:34 +0200 Subject: finish undo/redo --- src/gui/textbox.cpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'src/gui/textbox.cpp') diff --git a/src/gui/textbox.cpp b/src/gui/textbox.cpp index 688450b..c367193 100644 --- a/src/gui/textbox.cpp +++ b/src/gui/textbox.cpp @@ -178,18 +178,20 @@ void gui_textbox_handle_repeat( GUI_TEXTBOX* tb ) { if( gui_time() - tb->repeattime > 0.05f ) { U32 len = strlen( tb->value ); if( is_printable_char( tb->heldkey ) && len < (tb->maxlen - 1) ) { + if( tb->pre_cb ) tb->pre_cb( tb ); + if( tb->keys[SDLK_LSHIFT & 0xff] || tb->keys[SDLK_RSHIFT & 0xff] ) tb->value[len] = tb->heldkey + ('a' - 'A'); else tb->value[len] = tb->heldkey; tb->value[++len] = 0; - if( tb->cb ) - tb->cb( tb ); + + if( tb->cb ) tb->cb( tb ); } else if( tb->heldkey == '\b' && len > 0 ) { + if( tb->pre_cb ) tb->pre_cb( tb ); tb->value[--len] = 0; - if( tb->cb ) - tb->cb( tb ); + if( tb->cb ) tb->cb( tb ); } tb->repeattime = gui_time(); -- cgit v1.2.3