mCursorPosition = mTextLayoutInfo.mCharacterLayoutInfoTable.size();
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition( mCursorPosition );
- imfManager.SetSurroundingText( initialText );
- imfManager.NotifyCursorPosition();
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition( mCursorPosition );
+ imfManager.SetSurroundingText( initialText );
+ imfManager.NotifyCursorPosition();
+ }
if( IsScrollEnabled() )
{
// Updates the line height accordingly with the input style.
UpdateLineHeight();
- ImfManager imfManager = ImfManager::Get();
-
// Connect the signals to use in text input.
VirtualKeyboard::StatusChangedSignal().Connect( this, &TextInput::KeyboardStatusChanged );
VirtualKeyboard::LanguageChangedSignal().Connect( this, &TextInput::SetTextDirection );
Toolkit::TextInput handle( GetOwner() );
mInputStartedSignalV2.Emit( handle );
- imfManager.EventReceivedSignal().Connect(this, &TextInput::ImfEventReceived);
+ ImfManager imfManager = ImfManager::Get();
+
+ if ( imfManager )
+ {
+ imfManager.EventReceivedSignal().Connect(this, &TextInput::ImfEventReceived);
- // Notify that the text editing start.
- imfManager.Activate();
+ // Notify that the text editing start.
+ imfManager.Activate();
- // When window gain lost focus, the imf manager is deactivated. Thus when window gain focus again, the imf manager must be activated.
- imfManager.SetRestoreAferFocusLost( true );
+ // When window gain lost focus, the imf manager is deactivated. Thus when window gain focus again, the imf manager must be activated.
+ imfManager.SetRestoreAferFocusLost( true );
- imfManager.SetCursorPosition( mCursorPosition );
- imfManager.NotifyCursorPosition();
+ imfManager.SetCursorPosition( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
mClipboard = Clipboard::Get(); // Store handle to clipboard
}
ImfManager imfManager = ImfManager::Get();
+ if ( imfManager )
+ {
+ // The text editing is finished. Therefore the imf manager don't have restore activation.
+ imfManager.SetRestoreAferFocusLost( false );
- // The text editing is finished. Therefore the imf manager don't have restore activation.
- imfManager.SetRestoreAferFocusLost( false );
-
- // Notify that the text editing finish.
- imfManager.Deactivate();
-
- imfManager.EventReceivedSignal().Disconnect(this, &TextInput::ImfEventReceived);
+ // Notify that the text editing finish.
+ imfManager.Deactivate();
+ imfManager.EventReceivedSignal().Disconnect(this, &TextInput::ImfEventReceived);
+ }
// Disconnect signal used the text input.
VirtualKeyboard::LanguageChangedSignal().Disconnect( this, &TextInput::SetTextDirection );
notifier.ContentSelectedSignal().Disconnect( this, &TextInput::OnClipboardTextSelected );
}
Clipboard clipboard = Clipboard::Get();
- clipboard.HideClipboard();
+
+ if ( clipboard )
+ {
+ clipboard.HideClipboard();
+ }
}
}
ReturnClosestIndex( tap.localPoint, mCursorPosition );
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.NotifyCursorPosition();
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
std::size_t start = 0;
std::size_t end = 0;
// Notify keyboard so it can 're-capture' word for predictive text.
// As we have done a reset, is this required, expect IMF keyboard to request this information.
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.NotifyCursorPosition();
-
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
const TextStyle oldInputStyle( mInputStyle );
mInputStyle = GetStyleAtCursor(); // Inherit style from cursor position
ReturnClosestIndex( longPress.localPoint, mCursorPosition );
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.NotifyCursorPosition();
-
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
std::size_t start = 0;
std::size_t end = 0;
Dali::Toolkit::Internal::TextProcessor::FindNearestWord( mStyledText, mCursorPosition, start, end );
mPreserveCursorPosition = preserveCursorPosition;
// Reset incase we are in a pre-edit state.
- ImfManager::Get().Reset(); // Will trigger a commit message
+ ImfManager imfManager = ImfManager::Get();
+ if ( imfManager )
+ {
+ imfManager.Reset(); // Will trigger a commit message
+ }
}
void TextInput::CursorUpdate()
{
DrawCursor();
- std::string text( GetText() );
ImfManager imfManager = ImfManager::Get();
- imfManager.SetSurroundingText( text ); // Notifying IMF of a cursor change triggers a surrounding text request so updating it now.
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.NotifyCursorPosition();
+ if ( imfManager )
+ {
+ std::string text( GetText() );
+ imfManager.SetSurroundingText( text ); // Notifying IMF of a cursor change triggers a surrounding text request so updating it now.
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
}
/* Delete highlighted characters redisplay*/
}
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.NotifyCursorPosition();
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
}
}
// When replacing highlighted text keyboard should ignore current word at cursor hence notify keyboard that the cursor is at the start of the highlight.
mSelectingText = true;
- ImfManager imfManager = ImfManager::Get();
mCursorPosition = std::min( start, end ); // Set cursor position to start of highlighted text.
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.SetSurroundingText( GetText() );
- imfManager.NotifyCursorPosition();
+
+ ImfManager imfManager = ImfManager::Get();
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.SetSurroundingText( GetText() );
+ imfManager.NotifyCursorPosition();
+ }
// As the imfManager has been notified of the new cursor position we do not need to reset the pre-edit as it will be updated instead.
// Hide grab handle when selecting.
mCursorPosition = std::min(mSelectionHandleOnePosition, mSelectionHandleTwoPosition);
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition( mCursorPosition );
- imfManager.NotifyCursorPosition();
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
DeleteHighlightedText( true );
update = true;
}
mCursorPosition += insertedStringLength;
ImfManager imfManager = ImfManager::Get();
- imfManager.SetCursorPosition ( mCursorPosition );
- imfManager.NotifyCursorPosition();
+ if ( imfManager )
+ {
+ imfManager.SetCursorPosition ( mCursorPosition );
+ imfManager.NotifyCursorPosition();
+ }
update = update || ( insertedStringLength > 0 );
if( update )