From 0684a7d546a64e4dd4c75cd86b24f2377ef2c0df Mon Sep 17 00:00:00 2001 From: Joogab Yun Date: Thu, 28 Feb 2019 13:17:25 +0900 Subject: [PATCH 1/1] Check the keyString value. * A problem occurs because ClearPreEditFlag is called unnecessarily. 1. input 'A' on ime : case InputMethodContext::PRE_EDIT and text is 'A' 2. input key event : keyString is empty and called mImpl->ClearEditFlag(); 3. callback OnInputMethodContextEvent() : InputMethodContext::commit and text is 'A' 4. then pre edit text is not removed. Because clearEditFlag was called. 5. so, we see 'AA', not 'A' Change-Id: I1658ccc0679b763c04c1d13f1faf7e0f9d3ac2ea --- dali-toolkit/internal/text/text-controller.cpp | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/dali-toolkit/internal/text/text-controller.cpp b/dali-toolkit/internal/text/text-controller.cpp index 6e6bfaa..5e2c35a 100755 --- a/dali-toolkit/internal/text/text-controller.cpp +++ b/dali-toolkit/internal/text/text-controller.cpp @@ -2626,14 +2626,19 @@ bool Controller::KeyEvent( const Dali::KeyEvent& keyEvent ) { DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Controller::KeyEvent %p keyString %s\n", this, keyString.c_str() ); - // InputMethodContext is no longer handling key-events - mImpl->ClearPreEditFlag(); + if( !keyString.empty() ) + { + // InputMethodContext is no longer handling key-events + mImpl->ClearPreEditFlag(); - InsertText( keyString, COMMIT ); - textChanged = true; + InsertText( keyString, COMMIT ); + + textChanged = true; + + // Will request for relayout. + relayoutNeeded = true; + } - // Will request for relayout. - relayoutNeeded = true; } if ( ( mImpl->mEventData->mState != EventData::INTERRUPTED ) && -- 2.7.4