Fix for text cursor. 13/42613/3
authorVictor Cebollada <v.cebollada@samsung.com>
Tue, 30 Jun 2015 10:48:27 +0000 (11:48 +0100)
committerVictor Cebollada <v.cebollada@samsung.com>
Wed, 1 Jul 2015 06:42:38 +0000 (07:42 +0100)
Do not show the cursor when the text is selected.

Change-Id: I8af3dfbb78011744df3db22d0ccb44701d631ac7
Signed-off-by: Victor Cebollada <v.cebollada@samsung.com>
dali-toolkit/internal/text/text-controller-impl.cpp
dali-toolkit/internal/text/text-controller.cpp

index 08790c2..5dc17a4 100644 (file)
@@ -1762,7 +1762,6 @@ void Controller::Impl::ScrollTextToMatchCursor()
 
   if( cursorInfo.isSecondaryCursor )
   {
-    mEventData->mDecorator->SetActiveCursor( ACTIVE_CURSOR_BOTH );
     mEventData->mDecorator->SetPosition( SECONDARY_CURSOR,
                                          cursorInfo.secondaryPosition.x + offset.x,
                                          cursorInfo.secondaryPosition.y + offset.y,
@@ -1770,9 +1769,24 @@ void Controller::Impl::ScrollTextToMatchCursor()
                                          cursorInfo.lineHeight );
     DALI_LOG_INFO( gLogFilter, Debug::Verbose, "Secondary cursor position: %f,%f\n", cursorInfo.secondaryPosition.x + offset.x, cursorInfo.secondaryPosition.y + offset.y );
   }
+
+  // Set which cursors are active according the state.
+  if( ( EventData::EDITING == mEventData->mState ) ||
+      ( EventData::EDITING_WITH_POPUP == mEventData->mState ) ||
+      ( EventData::GRAB_HANDLE_PANNING == mEventData->mState ) )
+  {
+    if( cursorInfo.isSecondaryCursor )
+    {
+      mEventData->mDecorator->SetActiveCursor( ACTIVE_CURSOR_BOTH );
+    }
+    else
+    {
+      mEventData->mDecorator->SetActiveCursor( ACTIVE_CURSOR_PRIMARY );
+    }
+  }
   else
   {
-    mEventData->mDecorator->SetActiveCursor( ACTIVE_CURSOR_PRIMARY );
+    mEventData->mDecorator->SetActiveCursor( ACTIVE_CURSOR_NONE );
   }
 }
 
index 814c4fe..fc372af 100644 (file)
@@ -1351,11 +1351,11 @@ void Controller::TapEvent( unsigned int tapCount, float x, float y )
         mImpl->mEventData->mDecorator->SetPopupActive( false );
       }
 
-      mImpl->ChangeState( EventData::EDITING );
-
       // Handles & cursors must be repositioned after Relayout() i.e. after the Model has been updated
       if( mImpl->mEventData )
       {
+        mImpl->ChangeState( EventData::EDITING );
+
         Event event( Event::TAP_EVENT );
         event.p1.mUint = tapCount;
         event.p2.mFloat = x;