From 6fb20755d3e1c89ffeaf765e909036798b2c1281 Mon Sep 17 00:00:00 2001 From: omigamedev Date: Sun, 16 Jul 2017 22:21:59 +0100 Subject: [PATCH] fix text input in windows: implement backspace --- engine/node_text_input.cpp | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/engine/node_text_input.cpp b/engine/node_text_input.cpp index 1d2f487..9180d65 100644 --- a/engine/node_text_input.cpp +++ b/engine/node_text_input.cpp @@ -57,15 +57,25 @@ kEventResult NodeTextInput::handle_event(Event* e) //} break; case kEventType::KeyChar: - if (ke->m_char >= 32 && ke->m_char < (32 + 96)) + if (ke->m_char == '\b') // backspace { - if (ke->m_char == 0x7f) + if (!m_string.empty()) { - if (!m_string.empty()) - m_string.erase(m_string.end() - 1); + m_string.erase(m_string.end() - 1); + m_text->set_text(m_string.c_str()); } - else - m_string += (char)ke->m_char; + } + else if (ke->m_char == 0x7f) // DEL + { + if (!m_string.empty()) + { + m_string.erase(m_string.end() - 1); + m_text->set_text(m_string.c_str()); + } + } + else if (ke->m_char >= 32 && ke->m_char < (32 + 96)) + { + m_string += (char)ke->m_char; m_text->set_text(m_string.c_str()); } break;