diff options
-rw-r--r-- | VERSION | 2 | ||||
-rw-r--r-- | nk_pugl/nk_pugl.h | 15 |
2 files changed, 10 insertions, 7 deletions
@@ -1 +1 @@ -0.1.131 +0.1.133 diff --git a/nk_pugl/nk_pugl.h b/nk_pugl/nk_pugl.h index 52e0ee0..7f543ba 100644 --- a/nk_pugl/nk_pugl.h +++ b/nk_pugl/nk_pugl.h @@ -915,10 +915,14 @@ _nk_pugl_event_func(PuglView *view, const PuglEvent *e) { const PuglEventText *ev = (const PuglEventText *)e; - if(isprint(ev->character)) + const bool control = ev->state & PUGL_MOD_CTRL; + + const int ch = control ? ev->character | 0x60 : ev->character; + + if(isprint(ch)) { _nk_pugl_key_press(ctx, NK_KEY_TEXT_INSERT_MODE); - nk_input_unicode(ctx, ev->character); + nk_input_unicode(ctx, ch); } } break; @@ -1368,13 +1372,12 @@ nk_pugl_is_shortcut_pressed(struct nk_input *in, char letter, bool clear) if(control && (in->keyboard.text_len == 1) ) { - // unescape ASCII control chars + Control - const char ch = in->keyboard.text[0] | 0x60; - - if(isalpha(ch) && (ch == letter) ) // pass non-alpha characters through + if(in->keyboard.text[0] == letter) { if(clear) + { in->keyboard.text_len = 0; + } return true; // matching shortcut } |