limit the range of DALI_KEY_DELETE to text's length.
in case of no limit,
TextChanged() signal is emitted even if nothing is deleted.
Change-Id: Ie09bc718a88e2aed5b0c7cf9ebeef6042b63de5b
Signed-off-by: Bowon Ryu <bowon.ryu@samsung.com>
application.ProcessEvent( GenerateKey( "D", "", "D", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "D", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
DALI_TEST_CHECK( gTextChangedCallBackCalled );
+ // Remove all text
+ editor.SetProperty( TextField::Property::TEXT, "" );
+
+ // Pressing backspace key: TextChangedCallback should not be called when there is no text in texteditor.
+ gTextChangedCallBackCalled = false;
+ application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+ DALI_TEST_CHECK( !gTextChangedCallBackCalled );
+
+ // Pressing delete key: TextChangedCallback should not be called when there is no text in texteditor.
+ gTextChangedCallBackCalled = false;
+ application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_DELETE, 0, 0, Integration::KeyEvent::DOWN, "Delete", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+ DALI_TEST_CHECK( !gTextChangedCallBackCalled );
+
END_TEST;
}
application.ProcessEvent( GenerateKey( "D", "", "D", KEY_D_CODE, 0, 0, Integration::KeyEvent::DOWN, "D", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
DALI_TEST_CHECK( gTextChangedCallBackCalled );
+ // Remove all text
+ field.SetProperty( TextField::Property::TEXT, "" );
+
+ // Pressing backspace key: TextChangedCallback should not be called when there is no text in textfield.
+ gTextChangedCallBackCalled = false;
+ application.ProcessEvent( GenerateKey( "", "", "", DALI_KEY_BACKSPACE, 0, 0, Integration::KeyEvent::DOWN, "", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+ DALI_TEST_CHECK( !gTextChangedCallBackCalled );
+
+ // Pressing delete key: TextChangedCallback should not be called when there is no text in textfield.
+ gTextChangedCallBackCalled = false;
+ application.ProcessEvent( GenerateKey( "", "", "", Dali::DevelKey::DALI_KEY_DELETE, 0, 0, Integration::KeyEvent::DOWN, "Delete", DEFAULT_DEVICE_NAME, Device::Class::NONE, Device::Subclass::NONE ) );
+ DALI_TEST_CHECK( !gTextChangedCallBackCalled );
+
END_TEST;
}
1,
UPDATE_INPUT_STYLE);
}
- else if(keyCode == Dali::DevelKey::DALI_KEY_DELETE)
+ else if((controller.mImpl->mEventData->mPrimaryCursorPosition < controller.mImpl->mModel->mLogicalModel->mText.Count()) &&
+ (keyCode == Dali::DevelKey::DALI_KEY_DELETE))
{
// Remove the character after the current cursor position
removed = controller.RemoveText(0,