From 274c2ba0eac94a00f942f7f6a78b2b9a1d0759a3 Mon Sep 17 00:00:00 2001 From: quou Date: Tue, 14 Jan 2025 21:46:01 +1100 Subject: text input --- app.cpp | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) (limited to 'app.cpp') diff --git a/app.cpp b/app.cpp index cb90f63..6d69467 100644 --- a/app.cpp +++ b/app.cpp @@ -218,13 +218,29 @@ struct App_Internal { break; } break; - case KeyPress: + case KeyPress: { + char buf[2][32] = { "", "" }; + char* c; + int l = 0; sym = XLookupKeysym(&e.xkey, 0); key = key_from_xkey(sym); app->key_states[key] |= key_state_pressed | key_state_just_pressed; - break; + XLookupString( + &e.xkey, + buf[0], + sizeof buf[0], + 0, + 0 + ); + for (c = buf[0]; *c; c++) + if (*c >= ' ' && *c <= '~') + buf[1][l++] = *c; + buf[1][l++] = 0; + if (l) + app->on_text_input(buf[1]); + } break; case KeyRelease: sym = XLookupKeysym(&e.xkey, 0); key = key_from_xkey(sym); -- cgit v1.2.3-54-g00ecf