From 293300973b26ce36ad928f948c01cd69f93b2a99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?L=C3=A9a=20Saviot?= Date: Wed, 7 Nov 2018 14:55:41 +0100 Subject: [PATCH] [escher] TextField::handleEventWithText escapes quicker with null text --- escher/src/text_field.cpp | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/escher/src/text_field.cpp b/escher/src/text_field.cpp index 2ab60bf26..cc63d1d58 100644 --- a/escher/src/text_field.cpp +++ b/escher/src/text_field.cpp @@ -411,8 +411,18 @@ bool TextField::privateHandleMoveEvent(Ion::Events::Event event) { bool TextField::handleEventWithText(const char * eventText, bool indentation, bool forceCursorRightOfText) { size_t previousTextLength = strlen(text()); + size_t eventTextLength = strlen(eventText); - size_t eventTextSize = min(strlen(eventText) + 1, TextField::maxBufferSize()); + if (!isEditing()) { + setEditing(true); + } + + if (eventTextLength == 0) { + setCursorLocation(0); + return m_delegate->textFieldDidHandleEvent(this, true, true); + } + + size_t eventTextSize = min(eventTextLength + 1, TextField::maxBufferSize()); char buffer[TextField::maxBufferSize()]; size_t bufferIndex = 0; @@ -448,9 +458,6 @@ bool TextField::handleEventWithText(const char * eventText, bool indentation, bo } } - if (!isEditing()) { - setEditing(true); - } int nextCursorLocation = draftTextLength(); if (insertTextAtLocation(buffer, cursorLocation())) { /* The cursor position depends on the text as we sometimes want to position