idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp
--- a/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp Fri Feb 19 22:42:37 2010 +0200
+++ b/idlehomescreen/xmluirendering/renderingplugins/xntexteditorfactory/src/xntexteditoradapter.cpp Fri Mar 12 15:41:49 2010 +0200
@@ -50,6 +50,14 @@
const TInt KMaxLength = 100;
+enum TSplitInputState
+ {
+ ESplitInputDisabled = 0,
+ ESplitInputClosed,
+ ESplitInputOpen,
+ ESplitInputRemoveFromStack
+ };
+
_LIT8( KCpsPublishing, "cpspublishing" );
_LIT8( KMaxLineAmount, "max-line-amount" );
_LIT8( KMaxCharAmount, "max-char-amount" );
@@ -175,14 +183,13 @@
// Enable partial Screen
CXnProperty* enablepartialinput( iNode.GetPropertyL( KEnablePartialInput ) );
- iPartialInputEnabled = EFalse;
- iPartialInputOpen = EFalse;
+ iSplitInputState = ESplitInputDisabled;
if ( enablepartialinput &&
enablepartialinput->StringValue() == XnPropertyNames::KTrue )
{
iEditor->SetAknEditorFlags( EAknEditorFlagEnablePartialScreen );
- iPartialInputEnabled = ETrue;
+ iSplitInputState = ESplitInputClosed;
}
iEditor->SetObserver( this );
@@ -310,33 +317,36 @@
{
value = EPSAiDontForwardNumericKeysToPhone;
- if( !iPartialInputEnabled )
+ if( iSplitInputState == ESplitInputDisabled )
{
TRAP_IGNORE( appui->AddToStackL( appui->View(), iEditor ) );
// AddToStackL calls iEditor->SetFocus( ETrue );
}
-
+ else if( iSplitInputState == ESplitInputClosed )
+ {
+ iUiEngine->EnablePartialTouchInput(iNode , ETrue);
+ TRAP_IGNORE( appui->AddToStackL( appui->View(), iEditor ) );
+ iSplitInputState = ESplitInputOpen;
+ }
}
else
{
value = EPSAiForwardNumericKeysToPhone;
- if( !iPartialInputEnabled )
+ if( iSplitInputState == ESplitInputDisabled )
{
appui->RemoveFromStack( iEditor );
iEditor->SetFocus( EFalse, aDrawNow );
}
- else if(iPartialInputEnabled && iRemoveSplitInputFromStack )
+ else if( iSplitInputState == ESplitInputRemoveFromStack )
{
appui->RemoveFromStack( iEditor );
iEditor->SetFocus( EFalse, aDrawNow );
- iPartialInputOpen = EFalse;
- iRemoveSplitInputFromStack = EFalse;
- }
-
+ iSplitInputState = ESplitInputClosed;
+ }
}
- if(iPartialInputOpen)
+ if( iSplitInputState == ESplitInputOpen )
{
value = EPSAiDontForwardNumericKeysToPhone;
}
@@ -410,25 +420,15 @@
{
CXnAppUiAdapter* appui(
static_cast< CXnAppUiAdapter* >( iAvkonAppUi ) );
-
+
switch( aReason )
{
- case CXnTextEditor::KActivateTextEditor:
- {
- if( !iPartialInputOpen )
- {
- iUiEngine->EnablePartialTouchInput(iNode , ETrue);
- TRAP_IGNORE( appui->AddToStackL( appui->View(), iEditor ) );
- iPartialInputOpen = ETrue;
- }
- break;
- }
case CXnTextEditor::KDeactivateTextEditor:
{
- if( iPartialInputOpen )
+ if( iSplitInputState == ESplitInputOpen )
{
iUiEngine->EnablePartialTouchInput(iNode, EFalse);
- iPartialInputOpen = EFalse;
+ iSplitInputState = ESplitInputClosed;
appui->RemoveFromStack( iEditor );
iEditor->SetFocus( EFalse );
}
@@ -436,12 +436,12 @@
}
case CXnTextEditor::KRemoveSplitInputFromStack:
{
- iRemoveSplitInputFromStack = ETrue;
+ iSplitInputState = ESplitInputRemoveFromStack;
break;
}
case CXnTextEditor::KKeepSplitInputInStack:
{
- iRemoveSplitInputFromStack = EFalse;
+ iSplitInputState = ESplitInputOpen;
break;
}
default: