From: Joogab Yun Date: Thu, 28 Feb 2019 04:17:25 +0000 (+0900) Subject: Check the keyString value. X-Git-Tag: dali_1.4.10~5^2 X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=commitdiff_plain;h=0684a7d546a64e4dd4c75cd86b24f2377ef2c0df 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 --- 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 ) &&