diff -r c8fb4cf7b3ae -r 5e18d8c489d6 textinput/peninputarc/src/peninputserverapp/peninputserver.cpp --- a/textinput/peninputarc/src/peninputserverapp/peninputserver.cpp Tue May 11 16:31:42 2010 +0300 +++ b/textinput/peninputarc/src/peninputserverapp/peninputserver.cpp Tue May 25 13:03:44 2010 +0300 @@ -528,7 +528,10 @@ if(!iUiLayout) return; - + + TBool notDraw = EFalse; + iUiLayout->HandleCommand(ECmdPeninputDisableLayoutDrawing,(unsigned char*)¬Draw); + // move it out from if(!iActive) to make sure that msg bubble can be // shown if fast swap from other application to msg application. TBool bNeedWait = AnimOpNeedWaiting(ESignalPenUiActivated); @@ -1204,6 +1207,13 @@ ClearSpriteGc(); DeactivateSprite(); iDestroyingLayout = ETrue; + if(iUseWindowCtrl) + { + if(iPenUiCtrl) + { + iPenUiCtrl->Clean(); + } + } iUiLayout->Destroy(); iUiLayout = NULL; iDestroyingLayout = EFalse; @@ -1307,8 +1317,12 @@ iUseWindowCtrl = ETrue; if(iUseWindowCtrl) - { - iPenUiCtrl->SetExtent(layoutRect.iTl,layoutSize); + { +#ifdef FIX_FOR_NGA + TBool flag = ETrue; + iUiLayout->HandleCommand(ECmdPeninputEnableOwnBitmap,reinterpret_cast(&flag)); +#endif + iPenUiCtrl->SetExtent(layoutRect.iTl,layoutSize); if(iAnimObj) { iAnimObj->AddEnalbeSpriteCmd(EFalse); @@ -1563,10 +1577,6 @@ return; } -#ifndef FIX_FOR_NGA -#define FIX_FOR_NGA -#endif - //MLayoutOwner // --------------------------------------------------------------------------- // CPeninputServer::UpdateArea @@ -1901,15 +1911,11 @@ } break; - case ESignalPopupWndClosed: - { - if(iUseWindowCtrl) + default: + if(iUseWindowCtrl) { - iPenUiCtrl->ClosePopup(); + iPenUiCtrl->HandleNGASpecificSignal(aEventType, aEventData); } - } - break; - default: break; } } @@ -2117,9 +2123,17 @@ } return; } -*/ if(iActive && !iPrevActive && - iUiLayout->PenInputType() != EPluginInputModeFSQ && - iBackgroudDefaultOri == CAknAppUiBase::EAppUiOrientationUnspecified ) +*/ + TInt inputMode = iUiLayout ? iUiLayout->PenInputType() : EPluginInputModeNone; + + TBool isArabicFingerInput = (inputMode == EPluginInputModeFingerHwr && iInputLanguage == ELangArabic); + + if(isArabicFingerInput) + { + return; + } + + if(iActive && !iPrevActive && inputMode != EPluginInputModeFSQ && iBackgroudDefaultOri == CAknAppUiBase::EAppUiOrientationUnspecified ) { iPrevActive = ETrue;