IMF to be notified after Backspace key pressed 54/48454/1
authorAgnelo Vaz <agnelo.vaz@samsung.com>
Mon, 21 Sep 2015 15:08:13 +0000 (16:08 +0100)
committerAgnelo Vaz <agnelo.vaz@samsung.com>
Mon, 21 Sep 2015 15:13:45 +0000 (16:13 +0100)
* For prediction, the IMF needs to know if the backspace has resulted in the cursor being on a current word
* If on a current word the IMF may decide that it becomes the current pre edit word.

Change-Id: Ibf8e9afaba33ccce46ed90192357d89a20194d60
Signed-off-by: Agnelo Vaz <agnelo.vaz@samsung.com>
dali-toolkit/internal/text/text-controller.cpp

index a1283fb..3d22634 100644 (file)
@@ -1817,6 +1817,7 @@ ImfManager::ImfCallbackData Controller::OnImfEvent( ImfManager& imfManager, cons
     case ImfManager::COMMIT:
     {
       InsertText( imfEvent.predictiveString, Text::Controller::COMMIT );
+      update=true;
       requestRelayout = true;
       break;
     }
@@ -1910,11 +1911,10 @@ bool Controller::BackspaceKeyEvent()
 
   if( removed )
   {
-    // This is to reset the virtual keyboard to Upper-case
-    if( 0u == mImpl->mLogicalModel->mText.Count() )
-    {
-      NotifyImfManager();
-    }
+    DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Controller::KeyEvent %p DALI_KEY_BACKSPACE RemovedText\n", this );
+    // Notifiy the IMF manager after text changed
+    // Automatic  Upper-case and restarting prediction on an existing word require this.
+    NotifyImfManager();
 
     if( 0u != mImpl->mLogicalModel->mText.Count() ||
         !mImpl->IsPlaceholderAvailable() )