{
DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextEditor::OnKeyEvent %p keyCode %d\n", mController.Get(), event.keyCode );
- if( Dali::DALI_KEY_ESCAPE == event.keyCode
- && mController->IsClearFocusOnEscape() )
+ if( Dali::DALI_KEY_ESCAPE == event.keyCode ) // Make a Dali key code for this
{
// Make sure ClearKeyInputFocus when only key is up
if( event.state == KeyEvent::Up )
{
DALI_LOG_INFO( gLogFilter, Debug::Verbose, "TextField::OnKeyEvent %p keyCode %d\n", mController.Get(), event.keyCode );
- if( Dali::DALI_KEY_ESCAPE == event.keyCode
- && mController->IsClearFocusOnEscape() )
+ if( Dali::DALI_KEY_ESCAPE == event.keyCode ) // Make a Dali key code for this
{
// Make sure ClearKeyInputFocus when only key is up
if( event.state == KeyEvent::Up )
#include <dali-toolkit/internal/text/text-controller.h>
#include <dali-toolkit/internal/text/text-model.h>
#include <dali-toolkit/internal/text/text-view.h>
-#include <dali-toolkit/public-api/styling/style-manager.h>
-#include <dali-toolkit/devel-api/styling/style-manager-devel.h>
namespace Dali
{
// Set the text properties to default
mModel->mVisualModel->SetUnderlineEnabled( false );
mModel->mVisualModel->SetUnderlineHeight( 0.0f );
-
- Toolkit::StyleManager styleManager = Toolkit::StyleManager::Get();
- if( styleManager )
- {
- Property::Map config = Toolkit::DevelStyleManager::GetConfigurations( styleManager );
- mIsClearFocusOnEscape = config["clearFocusOnEscape"].Get<bool>();
- }
-
}
~Impl()
bool mUnderlineSetByString:1; ///< Set when underline is set by string (legacy) instead of map
bool mShadowSetByString:1; ///< Set when shadow is set by string (legacy) instead of map
bool mFontStyleSetByString:1; ///< Set when font style is set by string (legacy) instead of map
- bool mIsClearFocusOnEscape:1; ///< Whether text control clear key input focus or not
};
} // namespace Text
// Do nothing.
return false;
}
- else if( Dali::DALI_KEY_ESCAPE == keyCode || Dali::DALI_KEY_BACK )
+ else if( Dali::DALI_KEY_ESCAPE == keyCode )
{
- // Do nothing
- return false;
+ // Escape key is a special case which causes focus loss
+ KeyboardFocusLostEvent();
+
+ // Will request for relayout.
+ relayoutNeeded = true;
}
else if( ( Dali::DALI_KEY_CURSOR_LEFT == keyCode ) ||
( Dali::DALI_KEY_CURSOR_RIGHT == keyCode ) ||
mImpl->mControlInterface = controlInterface;
}
-bool Controller::IsClearFocusOnEscape()
-{
- return mImpl->mIsClearFocusOnEscape;
-}
-
// private : Private contructors & copy operator.
Controller::Controller()
*/
void PasteClipboardItemEvent();
- /**
- * @brief Return whether text control clear key input focus or not when escape key is pressed.
- *
- * @return Whether text control clear key input focus or not
- */
- bool IsClearFocusOnEscape();
-
protected: // Inherit from Text::Decorator::ControllerInterface.
/**
{
"config":
{
- "alwaysShowFocus":true,
- "clearFocusOnEscape":false
+ "alwaysShowFocus":true
},
"styles":
{
{
"config":
{
- "alwaysShowFocus":false,
- "clearFocusOnEscape":true
+ "alwaysShowFocus":false
},
"styles":
{
{
"config":
{
- "alwaysShowFocus":false,
- "clearFocusOnEscape":true
+ "alwaysShowFocus":false
},
"styles":
{