--- a/fep/aknfep/group/bld.inf Tue May 25 13:03:44 2010 +0300
+++ b/fep/aknfep/group/bld.inf Wed Jun 09 10:03:19 2010 +0300
@@ -35,6 +35,11 @@
// If there's no destination then the source file will be copied
// to the same name in /epoc32/include
+PRJ_PLATFORMS
+DEFAULT
+// Help exports
+#include "../help/group/bld.inf"
+
../inc/AknFepManagerInterface.h |../../../inc/AknFepManagerInterface.h
../inc/AknFepManagerUIInterface.h |../../../inc/AknFepManagerUIInterface.h
../inc/AknFepUiIndicEnums.h |../../../inc/AknFepUiIndicEnums.h
Binary file fep/aknfep/help/data/xhtml.zip has changed
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/help/group/bld.inf Wed Jun 09 10:03:19 2010 +0300
@@ -0,0 +1,26 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of the License "Symbian Foundation License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/sfl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - Initial contribution
+*
+* Contributors:
+*
+*
+* Description:
+* Export help related files.
+*
+*/
+
+#include <platform_paths.hrh>
+PRJ_EXPORTS
+:zip ../data/xhtml.zip /epoc32/data/z/resource/ overwrite
+:zip ../data/xhtml.zip /epoc32/winscw/c/resource/ overwrite
+
+../inc/hwr.vqwerty.vitu.hlp.hrh MW_LAYER_PLATFORM_EXPORT_PATH(csxhelp/hwr.vqwerty.vitu.hlp.hrh)
+../rom/fephelps_variant.iby CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(fephelps_variant.iby)
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/help/inc/hwr.vqwerty.vitu.hlp.hrh Wed Jun 09 10:03:19 2010 +0300
@@ -0,0 +1,29 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:
+*
+*/
+
+//
+// hwr.vqwerty.vitu.hlp.hrh generated by CSXHelp Utilities.
+//
+
+#ifndef __HWR_VQWERTY_VITU_HLP_HRH__
+#define __HWR_VQWERTY_VITU_HLP_HRH__
+
+_LIT(KHWR_HLP_MAIN_VIEW, "HWR_HLP_MAIN_VIEW"); //
+_LIT(KVQWERTY_HLP_MAIN_VIEW, "VQWERTY_HLP_MAIN_VIEW"); //
+_LIT(KVITU_HLP_MAIN_VIEW, "VITU_HLP_MAIN_VIEW"); //
+
+#endif
\ No newline at end of file
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/fep/aknfep/help/rom/fephelps_variant.iby Wed Jun 09 10:03:19 2010 +0300
@@ -0,0 +1,11 @@
+#ifndef __AKNFEPHELPS_VARIANT_IBY__
+#define __AKNFEPHELPS_VARIANT_IBY__
+
+#if defined(FF_S60_HELPS_IN_USE)
+ data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x100056de\contents.zip, RESOURCE_FILES_DIR\xhtml\%02d\0x100056de\contents.zip)
+ data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x100056de\index.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x100056de\index.xml)
+ data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x100056de\keywords.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x100056de\keywords.xml)
+ data=LOCALISE(DATAZ_\resource\xhtml\%02d\0x100056de\meta.xml, RESOURCE_FILES_DIR\xhtml\%02d\0x100056de\meta.xml)
+#endif
+
+#endif
\ No newline at end of file
--- a/fep/aknfep/inc/AknFepManager.h Tue May 25 13:03:44 2010 +0300
+++ b/fep/aknfep/inc/AknFepManager.h Wed Jun 09 10:03:19 2010 +0300
@@ -902,6 +902,8 @@
TBool IsSpecialNumericEditor();
void TryPopExactWordInICFL();
+
+ void HandleChangeInFocusForSettingFep();
private:
@@ -2813,6 +2815,14 @@
* can not changed in other cases, e.g. in latin-only editor
*/
TInt iActiveInputLanguage;
+
+ /**
+ * indicate whether matches popup list was lauched,
+ * when rotating the screen, we need to consider it, e.g V-ITUT to FSQ
+ */
+ TBool iMatchesListLaunched;
+
+
public:
//the follow 8 functions for phrase creation
--- a/fep/aknfep/inc/AknFepPluginManager.h Tue May 25 13:03:44 2010 +0300
+++ b/fep/aknfep/inc/AknFepPluginManager.h Wed Jun 09 10:03:19 2010 +0300
@@ -87,7 +87,8 @@
EPluginSwitchMode,
EPluginUpdatePenInputITIStatus,
EPluginEnableFetchDimState,
- EPluginArabicNumModeChanged
+ EPluginArabicNumModeChanged,
+ EPluginEnablePriorityChangeOnOriChange
};
/**
--- a/fep/aknfep/peninputplugins/peninputimeplugincn/src/pluginfepmanagerbase.cpp Tue May 25 13:03:44 2010 +0300
+++ b/fep/aknfep/peninputplugins/peninputimeplugincn/src/pluginfepmanagerbase.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -335,7 +335,10 @@
//
void CPluginFepManagerBase::ActivateUI()
{
- iPenInputServer->ActivateLayout( ETrue );
+ if(iPenInputServer)
+ {
+ iPenInputServer->ActivateLayout( ETrue );
+ }
}
// -----------------------------------------------------------------------------
--- a/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagerbase.cpp Tue May 25 13:03:44 2010 +0300
+++ b/fep/aknfep/peninputplugins/peninputimeplugingeneric/src/pluginfepmanagerbase.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -366,7 +366,10 @@
//
void CPluginFepManagerBase::ActivateUI()
{
- iPenInputServer->ActivateLayout( ETrue );
+ if(iPenInputServer)
+ {
+ iPenInputServer->ActivateLayout( ETrue );
+ }
}
// -----------------------------------------------------------------------------
--- a/fep/aknfep/peninputplugins/peninputimepluginitut/src/pluginfepmanagerbase.cpp Tue May 25 13:03:44 2010 +0300
+++ b/fep/aknfep/peninputplugins/peninputimepluginitut/src/pluginfepmanagerbase.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -437,7 +437,10 @@
//
void CPluginFepManagerBase::ActivateUI()
{
- iPenInputServer->ActivateLayout( ETrue );
+ if(iPenInputServer)
+ {
+ iPenInputServer->ActivateLayout( ETrue );
+ }
}
// -----------------------------------------------------------------------------
--- a/fep/aknfep/src/AknFepHashKeyManager.cpp Tue May 25 13:03:44 2010 +0300
+++ b/fep/aknfep/src/AknFepHashKeyManager.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -138,7 +138,8 @@
{
TKeyResponse response = EKeyWasNotConsumed;
TBool phoneIdle = (iFepMan.EditorType() == CAknExtendedInputCapabilities::EPhoneNumberEditor);
- if(phoneIdle)
+ // Don't handle hash key unless it comes from virtual keyboard.
+ if( phoneIdle && !iFepMan.PluginInputMode() )
{
return response;
}
--- a/fep/aknfep/src/AknFepManager.cpp Tue May 25 13:03:44 2010 +0300
+++ b/fep/aknfep/src/AknFepManager.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -3507,6 +3507,11 @@
}
}
+void CAknFepManager::HandleChangeInFocusForSettingFep()
+ {
+ HandleChangeInFocus();
+ }
+
void CAknFepManager::HandleDestructionOfFocusedItem()
{
if (iInputCapabilities.FepAwareTextEditor())
@@ -5327,6 +5332,11 @@
case R_AVKON_PREDICTIVE_TEXT_MENU_T9:
{
+ if( (iPtiEngine->NumberOfCandidates() <= 1) && !IsFlagSet(EFlagRemoveMatchesMenuItem ) )
+ {
+ SetFlag( EFlagRemoveMatchesMenuItem );
+ }
+
if (iMode != ELatin)
{
aMenuPane->SetItemDimmed(EAknCmdT9PredictiveInsertWord, ETrue);
@@ -8065,10 +8075,14 @@
TUid fepUid = CCoeEnv::Static()->FepUid();
ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
+ SendEventsToPluginManL(EPluginEnablePriorityChangeOnOriChange,EFalse);
// Fire up the dialog
+ iMatchesListLaunched = ETrue;
TInt returnValue = iUiInterface->LaunchListPopupL(R_AVKON_T9_MATCHES_QUERY, index,
currentIndex, matchesList, NULL);
+ iMatchesListLaunched = EFalse;
PrepareFepAfterDialogExitL(fepUid);
+ SendEventsToPluginManL(EPluginEnablePriorityChangeOnOriChange,ETrue);
if(returnValue == EAknSoftkeyOk)
{// Selected item 'index' from the matches array
HandleChangeInFocusL();
@@ -15792,6 +15806,7 @@
#endif //RD_SCALABLE_UI_V2
TUid fepUid = CCoeEnv::Static()->FepUid();
ClearExtendedFlag(EExtendedFlagEdwinEditorDestroyed);
+ SendEventsToPluginManL(EPluginEnablePriorityChangeOnOriChange,EFalse);
TInt returnValue = iUiInterface->LaunchListPopupL(R_AVKON_T9_LANGUAGES_QUERY, index,
selectedLanguageIndex, languagesList, icons);
#ifdef RD_SCALABLE_UI_V2
@@ -15840,6 +15855,7 @@
}
+ SendEventsToPluginManL(EPluginEnablePriorityChangeOnOriChange,ETrue);
CleanupStack::PopAndDestroy( languages );
}
@@ -18382,7 +18398,7 @@
{
iFepPluginManager->SetLaunchSCTInSpell( ETrue );
}
-
+ SendEventsToPluginManL(EPluginEnablePriorityChangeOnOriChange,EFalse);
if (iUiInterface->CharMapDialogL(
sctChars,
specialChars,
@@ -18520,6 +18536,7 @@
iStopProcessFocus = EFalse;
}
PrepareFepAfterDialogExitL(fepUid);
+ SendEventsToPluginManL(EPluginEnablePriorityChangeOnOriChange,ETrue);
}
}
@@ -18757,20 +18774,28 @@
iAsyncResouceChanged.CallBack();
}
#ifdef RD_INTELLIGENT_TEXT_INPUT
- if(iCandidatePopup && iPtiEngine && (aType == KEikDynamicLayoutVariantSwitch))
- {
+
+ if(aType == KEikDynamicLayoutVariantSwitch)
+ {
+ if ( iAvkonAppUi->IsDisplayingDialog() && iMatchesListLaunched )
+ {
+ iUiInterface->DeleteDialogs();
+ }
+
//When there is a change of layout, the inline text position changes and hence the candidate
//list position also needs to change accordingly.
//We need the editor to be brought back to focus, this is because we need the position of
//the inline text.
- iCandidatePopup->UnFocus();
- //Need to get the editor state back after it is brought back to focus.
- TRAP_IGNORE( HandleChangeInFocusL());
-
- // Add candidate list control stack to get the layout change event
- // after dialog control......
- TRAP_IGNORE( iCandidatePopup->SetFocusAddStackReducePriorityL() );
-
+ if( iCandidatePopup && iPtiEngine )
+ {
+ iCandidatePopup->UnFocus();
+ //Need to get the editor state back after it is brought back to focus.
+ TRAP_IGNORE( HandleChangeInFocusL());
+
+ // Add candidate list control stack to get the layout change event
+ // after dialog control......
+ TRAP_IGNORE( iCandidatePopup->SetFocusAddStackReducePriorityL() );
+ }
}
#endif
TRAP_IGNORE(SendEventsToPluginManL( EPluginResourceChanged, aType ));
--- a/fep/aknfep/src/AknFepPluginManager.cpp Tue May 25 13:03:44 2010 +0300
+++ b/fep/aknfep/src/AknFepPluginManager.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -686,6 +686,8 @@
case ESignalEnterSpellMode:
{
iCurrentPluginInputFepUI->HandleCommandL(ECmdPeninputDisableLayoutDrawing,ETrue);
+ // this will allow the layout to be redraw even if the layout was activeated
+ iCurrentPluginInputFepUI->HandleCommandL(ECmdPeninputEnalbeLayoutReDrawWhenActive,ETrue);
iFepMan.LaunchEditWordQueryL();
}
break;
@@ -698,6 +700,8 @@
iFocuschangedForSpellEditor = ETrue;
iCurrentPluginInputFepUI->HandleCommandL(ECmdPeninputDisableLayoutDrawing,ETrue);
+ // this will allow the layout to be redraw even if the layout was activeated
+ iCurrentPluginInputFepUI->HandleCommandL(ECmdPeninputEnalbeLayoutReDrawWhenActive,ETrue);
exitbyok ? iFepMan.ExitPluginSpellModeByOk() :
iFepMan.ExitPluginSpellModeByCancel();
}
@@ -1079,6 +1083,15 @@
ECmdPeninputArabicNumModeChanged,aEventData);
}
break;
+ case EPluginEnablePriorityChangeOnOriChange:
+ if(iCurrentPluginInputFepUI)
+ {
+ if(ConnectServer())
+ {
+ iPenInputServer.EnablePriorityChangeOnOriChange(TBool(aEventData));
+ }
+ }
+
default:
break;
}
@@ -1163,16 +1176,24 @@
TPixelsTwipsAndRotation size;
CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(size);
TBool landscape = size.iPixelSize.iWidth > size.iPixelSize.iHeight;
- TBool disableFSQ =
- ( aSuggestMode == EPluginInputModeFSQ &&
- ( iDefaultOrientation == CAknAppUiBase::EAppUiOrientationPortrait ||
- ( !landscape && !iAvkonAppUi->OrientationCanBeChanged() ) ) );
-
-
+ // For portrait only mode, need to disable FSQ.
+ TBool disableFSQ = iDefaultOrientation == CAknAppUiBase::EAppUiOrientationPortrait
+ || ( !landscape && !iAvkonAppUi->OrientationCanBeChanged() );
if ( disableFSQ )
{
iPenInputServer.SetDisabledLayout( EPluginInputModeFSQ );
}
+ else
+ {
+ // if fsq had been disabled before and now application is not portrait only,
+ // need to enable fsq again;
+ TInt disableMode = iPenInputServer.DisabledLayout();
+ if( disableMode & EPluginInputModeFSQ )
+ {
+ iPenInputServer.SetDisabledLayout( -1 );//reset disable type
+ iPenInputServer.SetDisabledLayout( disableMode & ~EPluginInputModeFSQ );
+ }
+ }
TBool disableITUT =
( iDefaultOrientation == CAknAppUiBase::EAppUiOrientationLandscape ||
@@ -1183,19 +1204,19 @@
//disable V-ITUT, and if current aSuggestMode is EPluginInputModeItut, replace it with EPluginInputModeFSQ;
iPenInputServer.SetDisabledLayout( EPluginInputModeItut );
if( aSuggestMode == EPluginInputModeItut )
- {
- aSuggestMode = EPluginInputModeFSQ;
- }
+ {
+ aSuggestMode = EPluginInputModeFSQ;
+ }
}
else
{
// if V-ITUT had been disabled before, enable it now;
TInt disableMode = iPenInputServer.DisabledLayout();
if( disableMode & EPluginInputModeItut )
- {
- iPenInputServer.SetDisabledLayout( -1 );//reset
- iPenInputServer.SetDisabledLayout( disableMode & ~EPluginInputModeItut );
- }
+ {
+ iPenInputServer.SetDisabledLayout( -1 );//reset
+ iPenInputServer.SetDisabledLayout( disableMode & ~EPluginInputModeItut );
+ }
}
@@ -1271,11 +1292,6 @@
isSplit = EFalse;
}
- if ( iLangMan.IsSplitView() && !isSplit )
- {
- NotifyAppUiImeTouchWndStateL( EFalse ); //restore layout
- }
-
iLangMan.SetSplitView(isSplit);
@@ -1534,30 +1550,48 @@
iResourceChange = ETrue;
+ TBool needToChangeInputMode = ETrue;
if ( iSharedData.AutoRotateEnabled() &&
( iPluginInputMode == EPluginInputModeFSQ || iPluginInputMode == EPluginInputModeItut ) )
{
if ( IsSpellVisible() )
{
iFepMan.ExitPluginSpellModeByCancel();
+ iFepMan.SetNotifyPlugin( EFalse );
+ iFepMan.HandleChangeInFocusForSettingFep();
+ iFepMan.SetNotifyPlugin( ETrue );
}
-
- if ( iPenInputMenu && iPenInputMenu->IsShowing() )
- {
- iPenInputMenu->Hide();
- ResetMenuState();
- }
- ClosePluginInputModeL(ETrue);
- iFepMan.TryCloseUiL();
TPixelsTwipsAndRotation size;
CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(size);
- iPluginInputMode = ( size.iPixelSize.iWidth < size.iPixelSize.iHeight ) ?
+ TPluginInputMode inputModeBeforeOri = ( size.iPixelSize.iWidth < size.iPixelSize.iHeight ) ?
EPluginInputModeItut : EPluginInputModeFSQ;
- }
- TryChangePluginInputModeByModeL( iPluginInputMode,
+
+ if ( iPenInputMenu && iPenInputMenu->IsShowing() )
+ {
+ iPenInputMenu->Hide();
+ ResetMenuState(EFalse);
+ }
+
+ if(inputModeBeforeOri != iPluginInputMode)
+ {
+ iPluginInputMode = inputModeBeforeOri;
+ ClosePluginInputModeL(ETrue);
+ iFepMan.TryCloseUiL();
+ }
+ else
+ {
+ needToChangeInputMode = EFalse;
+ }
+ }
+
+ if(needToChangeInputMode)
+ {
+ TryChangePluginInputModeByModeL( iPluginInputMode,
EPenInputOpenManually,
ERangeInvalid );
+ }
+
/*if(size.iPixelSize.iWidth > size.iPixelSize.iHeight ) //landscape
{
if ( iPluginInputMode == EPluginInputModeVkb )
@@ -1585,12 +1619,15 @@
iCurrentPluginInputFepUI->ResourceChanged(aType);
}
- if (iInMenu)
- {
- SetMenuState(EFalse);
- }
-
- if (setResChange)
+ if(needToChangeInputMode)
+ {
+ if (iInMenu)
+ {
+ SetMenuState(EFalse);
+ }
+ }
+
+ if (setResChange)
{
iPenInputServer.SetResourceChange(EFalse);
}
@@ -5947,6 +5984,14 @@
//
TBool CAknFepPluginManager::IsEditorSupportSplitIme()
{
+
+ TBool disablePartialInput = FeatureManager::FeatureSupported( KFeatureIdChinese )
+ || FeatureManager::FeatureSupported( KFeatureIdKorean );
+ if ( disablePartialInput )
+ {
+ return EFalse;
+ }
+
//Mfne editors
if ( iFepMan.IsMfneEditor() )
{
--- a/inputmethods_plat/aknfep_pen_support_api/inc/aknfeppeninputenums.h Tue May 25 13:03:44 2010 +0300
+++ b/inputmethods_plat/aknfep_pen_support_api/inc/aknfeppeninputenums.h Wed Jun 09 10:03:19 2010 +0300
@@ -182,6 +182,7 @@
ECmdPeninputEnableOwnBitmap,
ECmdPeninputDisableLayoutDrawing,
ECmdPeninputArabicNumModeChanged,
+ ECmdPeninputEnalbeLayoutReDrawWhenActive,
ECmdPenInputImeCmdBase = 2000
};
--- a/inputmethods_plat/pen_input_server_api/inc/peninputclient.h Tue May 25 13:03:44 2010 +0300
+++ b/inputmethods_plat/pen_input_server_api/inc/peninputclient.h Wed Jun 09 10:03:19 2010 +0300
@@ -427,7 +427,7 @@
IMPORT_C void SetResourceChange(TBool aFlag);
IMPORT_C TInt ConnectAsyc(TRequestStatus& aStatus);
IMPORT_C void SetDataQueryPopped(TBool aFlag);
-
+ IMPORT_C void EnablePriorityChangeOnOriChange(TBool aEnabled);
private: // Data
/**
* The singleton client to the input server
--- a/inputmethods_plat/pen_input_server_api/inc/peninputcmd.h Tue May 25 13:03:44 2010 +0300
+++ b/inputmethods_plat/pen_input_server_api/inc/peninputcmd.h Wed Jun 09 10:03:19 2010 +0300
@@ -111,6 +111,7 @@
ESignalRegisterBkControl,
ESignalDisableUpdating,
ESignalDrawBackground,
+ ESignalEnableLayoutRedrawWhenActive,
ESignalFepEventBase = 1500, //Event base for Fep. All fep event
//is re-directed to Fep.
ESignalKeyEvent = 1501, //hwr recongition selection event.
--- a/textinput/peninputarc/bwins/peninputClientU.DEF Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/bwins/peninputClientU.DEF Wed Jun 09 10:03:19 2010 +0300
@@ -63,4 +63,5 @@
?SetInputLanguage@RPeninputServer@@QAEHH@Z @ 62 NONAME ; int RPeninputServer::SetInputLanguage(int)
?ConnectAsyc@RPeninputServer@@QAEHAAVTRequestStatus@@@Z @ 63 NONAME ; int RPeninputServer::ConnectAsyc(class TRequestStatus &)
?SetDataQueryPopped@RPeninputServer@@QAEXH@Z @ 64 NONAME ; void RPeninputServer::SetDataQueryPopped(int)
+ ?EnablePriorityChangeOnOriChange@RPeninputServer@@QAEXH@Z @ 65 NONAME ; void RPeninputServer::EnablePriorityChangeOnOriChange(int)
--- a/textinput/peninputarc/eabi/peninputClientU.DEF Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/eabi/peninputClientU.DEF Wed Jun 09 10:03:19 2010 +0300
@@ -72,3 +72,5 @@
_ZN15RPeninputServer16SetInputLanguageEi @ 71 NONAME
_ZN15RPeninputServer11ConnectAsycER14TRequestStatus @ 72 NONAME
_ZN15RPeninputServer18SetDataQueryPoppedEi @ 73 NONAME
+ _ZN15RPeninputServer31EnablePriorityChangeOnOriChangeEi @ 74 NONAME
+
--- a/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutbasecontrol.h Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutbasecontrol.h Wed Jun 09 10:03:19 2010 +0300
@@ -44,6 +44,8 @@
typedef TInt64 TControlType;
const TInt KPenInputOwnDeviceChange = -1;
+const TInt KPenInputOwnDeviceResourceChange = -2;
+
const TUint KFepCtrlExtId = 0x00000000;
//UI layout leave code
enum TUiLayoutErrorCode
--- a/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutvirtualkeyctrl.h Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutvirtualkeyctrl.h Wed Jun 09 10:03:19 2010 +0300
@@ -235,7 +235,7 @@
TVirtualKeyDrawInfo iVirtualKeyDrawInfo;
-protected:
+public:
void UpdateChangedArea(TBool aFlag);
private:
CFbsBitGc* GetGc();
--- a/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutvkb.h Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/inc/peninputlayoutcontrolinc/peninputlayoutvkb.h Wed Jun 09 10:03:19 2010 +0300
@@ -168,7 +168,8 @@
CFbsBitmapDevice* iHighlightKeyDev;
CFbsBitmapDevice* iDimmedKeyDev;
CFbsBitGc* iKeyGc;
-
+ TBool iHighlightKeyResourceChanged;
+ TBool iNormalKeyResourceChanged;
friend class CVirtualKeyboard;
};
@@ -935,6 +936,8 @@
TBool PrepareKeyBmp(CFbsBitmap* aBmp,CFbsBitmapDevice* aDev,const TRect& aRect,
const TRect& aInnerRect,const TAknsItemID& aFrameID, const TAknsItemID& aCenterID,const TRect& aKeyRect);
+ TBool PrepareHighlightKeyBmp(const TRect& aRect, const TRect& aInnerRect, const TRect& aKeyRect);
+ TBool PrepareNormalKeyBmp(const TRect& aRect, const TRect& aInnerRect, const TRect& aKeyRect);
friend class CVirtualKeyCtrl;
friend class CVirtualRawKeyCtrl;
--- a/textinput/peninputarc/inc/pensrvcliinc/peninputclientimpl.h Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/inc/pensrvcliinc/peninputclientimpl.h Wed Jun 09 10:03:19 2010 +0300
@@ -450,6 +450,8 @@
void SetResourceChange(TBool aFlag);
void SetDataQueryPopped(TBool aFlag);
+
+ void EnablePriorityChangeOnOriChange(TBool aEnabled);
/**
* Starts the server thread
*
--- a/textinput/peninputarc/inc/pensrvcliinc/peninputclientserver.h Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/inc/pensrvcliinc/peninputclientserver.h Wed Jun 09 10:03:19 2010 +0300
@@ -88,7 +88,8 @@
EPeninputRequestInternalDimLayout,
EPeninputRequestDimResChangeLayout,
EPeninputRequestSupportInputMode,
- EPeninputRequestSetInputLanguage
+ EPeninputRequestSetInputLanguage,
+ EPeninputEnablePriorityChangeOnOriChange
};
//server error code
--- a/textinput/peninputarc/inc/pensrvcliinc/peninputserver.h Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/inc/pensrvcliinc/peninputserver.h Wed Jun 09 10:03:19 2010 +0300
@@ -980,6 +980,8 @@
RProperty iDiscreetPopProperty;
RAknUiServer iAknUiSrv;
TRect iDiscreetPopArea;
+ TBool iEnablePriorityChangeOnOriChange;
+ TBool iIsLayoutReDrawAllowWhenActive;
};
/**
--- a/textinput/peninputarc/inc/pensrvcliinc/penuiwndctrl.h Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/inc/pensrvcliinc/penuiwndctrl.h Wed Jun 09 10:03:19 2010 +0300
@@ -201,6 +201,7 @@
void Clean();
void HandleNGASpecificSignal(TInt aEventType, const TDesC& aEventData);
+ void LiftUpPriority();
public: // Functions from base classes.
/**
@@ -374,4 +375,4 @@
RWindowGroup& iWndGroup;
CFbsBitmap * iBitmap;
};
-#endif
\ No newline at end of file
+#endif
--- a/textinput/peninputarc/src/peninputclient/penclientimpl.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputclient/penclientimpl.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -331,7 +331,7 @@
if(aFlag)
{
//show the background control
- if(!iBackgroundCtrl)
+ if(!iBackgroundCtrl && bmpHandle != -1)
{
iBackgroundCtrl = CPenUiBackgroundWnd::NewL(CCoeEnv::Static()->RootWin(),bmpHandle);
}
@@ -1158,6 +1158,14 @@
arg.Set(KMsgSlot0,&msg);
SendReceive(EPeninputRequestDimResChangeLayout,arg);
}
+
+void RPeninputServerImpl::EnablePriorityChangeOnOriChange(TBool aEnabled)
+ {
+ TIpcArgs arg;
+ TPckg<TBool> msg(aEnabled);
+ arg.Set(KMsgSlot0,&msg);
+ SendReceive(EPeninputEnablePriorityChangeOnOriChange,arg);
+ }
//end of class RPeninputServerImpl
--- a/textinput/peninputarc/src/peninputclient/peninputclient.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputclient/peninputclient.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -505,5 +505,9 @@
iSingletonServer->SetResourceChange(aFlag);
}
+EXPORT_C void RPeninputServer::EnablePriorityChangeOnOriChange(TBool aEnabled)
+ {
+ iSingletonServer->EnablePriorityChangeOnOriChange(aEnabled);
+ }
//end of class RPeninputServer
// End of File
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbasecontrol.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbasecontrol.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -699,7 +699,7 @@
TBool CFepUiBaseCtrl::IsOnTopOf(CFepUiBaseCtrl* aCtrl)
{
- __ASSERT_DEBUG(aCtrl,EUiNullParam);
+ ASSERT(aCtrl);
return OrderPos() < aCtrl->OrderPos();
}
@@ -1355,11 +1355,7 @@
EXPORT_C void CFepUiBaseCtrl::SetParent(CFepUiBaseCtrl* aParent)
{
- //parent control must be type of control group.
- if(aParent)
- {
- __ASSERT_DEBUG(aParent->IsKindOfControl(ECtrlControlGroup),EUiLayoutBadParentType);
- }
+ //ASSERT(aParent == NULL || aParent->IsKindOfControl(ECtrlControlGroup));
iParentCtrl = aParent;
}
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbubblectrl.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbubblectrl.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -111,6 +111,7 @@
{
iShowing = ETrue;
SetHidenFlag(EFalse);
+ /*
if(UiLayout()->NotDrawToLayoutDevice())
{
struct SData
@@ -124,16 +125,19 @@
ptr.Set(reinterpret_cast<const TUint16*>(&data),sizeof(data)/sizeof(TUint16));
UiLayout()->SignalOwner(ESignalPopupArea,ptr);
- }
+ }
+ */
return;
}
- if(!iShowing || aRect != Rect() || iNeedRedraw)
+ if( !iShowing || iNeedRedraw )
{
iShowing = ETrue;
TRect rect = Rect();
- SetRect(aRect);
+ //SetRect(aRect);
SetHidenFlag(EFalse);
BringToTop();
+
+ /*
//redraw the control under bubble control
if(aRect != rect)
{
@@ -160,7 +164,8 @@
RootControl()->ReDrawRect(rect);
}
}
-
+ */
+ /*
// signal server to add the pop area
if(UiLayout()->NotDrawToLayoutDevice())
{
@@ -177,6 +182,7 @@
UiLayout()->SignalOwner(ESignalPopupArea,ptr);
}
+ */
// signal server to copy the background as background bitmap for its own bitmap
if(UiLayout()->NotDrawToLayoutDevice())
@@ -582,8 +588,37 @@
EXPORT_C void CBubbleCtrl::SetRect(const TRect& aRect)
{
- if(aRect == Rect())
+ if( aRect == Rect())
+ {
return;
+ }
+ else
+ {
+ if( UiLayout()->NotDrawToLayoutDevice())
+ {
+ struct SData
+ {
+ TRect rr;
+ TBool flag;
+ } data;
+
+ // Remove the original region from list
+ data.rr = Rect();
+ data.flag = EFalse;
+ TPtrC ptrForRemove;
+ ptrForRemove.Set(
+ reinterpret_cast<const TUint16*>(&data),sizeof(data)/sizeof(TUint16));
+ UiLayout()->SignalOwner( ESignalPopupArea, ptrForRemove );
+
+ // Add the new region to list
+ data.rr = aRect;
+ data.flag = ETrue;
+ TPtrC ptrForAdd;
+ ptrForAdd.Set(
+ reinterpret_cast<const TUint16*>(&data),sizeof(data)/sizeof(TUint16));
+ UiLayout()->SignalOwner( ESignalPopupArea, ptrForAdd );
+ }
+ }
CFepUiBaseCtrl::SetRect(aRect);
ResizeDeviceL();
}
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutcursor.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutcursor.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -102,29 +102,34 @@
EXPORT_C void CFepUiCursor::SetPosition(const TPoint& aPosition)
{
- TBool isOn = iIsOn;
- if (isOn)
- {
- SetOn(EFalse);
- }
- iPosition=aPosition;
- TPoint correction(KCursorPosCorrectionX,KCursorPosCorrectionY );
- TRect rect = TRect(iPosition + correction , TSize(KCursorWidth,iHeight));
- if(rect != iCursorRect)
- {
- SetRect(rect);
- iCursorRect = rect;
- //must update clip region again.
- for(TInt i = 0 ; i < RootControl()->PopCtrlList().Count(); ++i)
- {
- UpdateValidRegion(RootControl()->PopCtrlList()[i],EFalse);
- }
- }
-
- if (isOn)
- {
- SetOn(ETrue);
- }
+ if( iPosition != aPosition )
+ {
+ TBool isOn = iIsOn;
+ if (isOn)
+ {
+ SetOn(EFalse);
+
+ }
+ iPosition=aPosition;
+ TPoint correction(KCursorPosCorrectionX,KCursorPosCorrectionY );
+ TRect rect = TRect(iPosition + correction , TSize(KCursorWidth,iHeight));
+ if(rect != iCursorRect)
+ {
+ SetRect(rect);
+ iCursorRect = rect;
+ //must update clip region again.
+ for(TInt i = 0 ; i < RootControl()->PopCtrlList().Count(); ++i)
+ {
+ UpdateValidRegion(RootControl()->PopCtrlList()[i],EFalse);
+ }
+ }
+
+ if (isOn)
+ {
+ SetOn(ETrue);
+ }
+ }
+
}
// ---------------------------------------------------------------------------
@@ -168,6 +173,7 @@
{
iCursorBlinkingTimer->Cancel();
}
+ InvalidateInsertionPoint();
}
else
{
@@ -184,7 +190,7 @@
}
// Invalidate InsertionPoint's rect, so it will be removed from editarea
- InvalidateInsertionPoint();
+ //InvalidateInsertionPoint();
}
// ---------------------------------------------------------------------------
@@ -380,7 +386,7 @@
//
void CFepUiCursor::InvalidateInsertionPoint()
{
- //if(AbleToDraw())
+ if(AbleToDraw())
{
Draw();
//UpdateArea(iCursorRect,EFalse);
@@ -437,7 +443,7 @@
iCursorTempDisabled = EFalse;
iIsOn = ETrue;
//To avoid the ugly first shown, we draw the cursor directly here.
- InvalidateInsertionPoint();
+ //InvalidateInsertionPoint();
SetOn(ETrue, EFalse);
}
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutmultilineicfeditor.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutmultilineicfeditor.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -2145,7 +2145,7 @@
{
if ( iLastCursorPos != iCursorSel.iCursorPos )
{
- UiLayout()->DoTactileFeedback(ETouchFeedbackSensitiveInput);
+ UiLayout()->DoTactileFeedback(ETouchFeedbackEdit);
iLastCursorPos = iCursorSel.iCursorPos;
}
}
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutpopupwnd.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutpopupwnd.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -501,6 +501,7 @@
layoutOwner->SetPosition(iPrevLayoutRect.iTl);
layoutOwner->LayoutSizeChanged(iPrevLayoutRect.Size());
RootControl()->GraphicDeviceSizeChanged();
+ bRedraw = ETrue;
}
if (bRedraw)
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutrootctrl.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutrootctrl.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -815,7 +815,12 @@
if(!AbleToDraw())
return;
-
+
+ if(UiLayout()->NotDrawToLayoutDevice())
+ {
+ HandleResourceChange(KPenInputOwnDeviceResourceChange);
+ }
+
Clear();
CControlGroup::Draw();
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkb.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkb.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -1349,6 +1349,10 @@
{
//find key
//iKeyboard->DrawKey(this);
+ if ( !aFlag )
+ {
+ iKeyCtrl->UpdateChangedArea(EFalse);
+ }
iKeyCtrl->Draw();
}
}
@@ -1503,6 +1507,9 @@
iKeyGc = CFbsBitGc::NewL();
iKeyGc->Reset();
+
+ iHighlightKeyResourceChanged = ETrue;
+ iNormalKeyResourceChanged = ETrue;
}
void CVirtualKeyboard::CreateBmpDevL()
@@ -1519,8 +1526,15 @@
TRAP_IGNORE(CreateBmpDevL());
}
}
+ else if(aType == KPenInputOwnDeviceResourceChange)
+ {
+ iExt->iHighlightKeyResourceChanged = ETrue;
+ iExt->iNormalKeyResourceChanged = ETrue;
+ }
else
+ {
CControlGroup::HandleResourceChange(aType);
+ }
}
CFbsBitmap* CVirtualKeyboard::PrepareMaskBmpL(CFbsBitGc* aGc, const TDisplayMode& aMode, const TRect& aRect)
@@ -1601,4 +1615,31 @@
delete keyBmp;
return ETrue;
}
+
+TBool CVirtualKeyboard::PrepareHighlightKeyBmp(const TRect& aRect, const TRect& aInnerRect, const TRect& aKeyRect)
+ {
+ if(HighightKeyBmp()->SizeInPixels() != aRect.Size() || iExt->iHighlightKeyResourceChanged)
+ {
+ iExt->iHighlightKeyResourceChanged = EFalse;
+ return PrepareKeyBmp(HighightKeyBmp(),HighlightKeyDev(),aRect,aInnerRect
+ ,KeySkinId(EKeyBmpHighlight),KAknsIIDDefault,aKeyRect);
+
+ }
+
+ return ETrue;
+ }
+
+TBool CVirtualKeyboard::PrepareNormalKeyBmp(const TRect& aRect, const TRect& aInnerRect, const TRect& aKeyRect)
+ {
+ if(NormalKeyBmp()->SizeInPixels() != aRect.Size() || iExt->iNormalKeyResourceChanged)
+ {
+ iExt->iNormalKeyResourceChanged = EFalse;
+ return PrepareKeyBmp(NormalKeyBmp(),NormalKeyDev(),aRect,aInnerRect
+ ,KeySkinId(EKeyBmpNormal),KAknsIIDDefault,aKeyRect);
+
+ }
+
+ return ETrue;
+ }
+
//end of implementation of Class CVirtualKey
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkbkeyctrl.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkbkeyctrl.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -377,11 +377,12 @@
TBool bHasDrawn = EFalse;
if(UiLayout()->NotDrawToLayoutDevice())
{
- TBool ret = iKeyboard->PrepareKeyBmp(iKeyboard->NormalKeyBmp(),
+ /*TBool ret = iKeyboard->PrepareKeyBmp(iKeyboard->NormalKeyBmp(),
iKeyboard->NormalKeyDev(),
rect,innerrect,
iKeyboard->KeySkinId(EKeyBmpNormal),
- KAknsIIDDefault,Rect());
+ KAknsIIDDefault,Rect());*/
+ TBool ret = iKeyboard->PrepareNormalKeyBmp(rect,innerrect,Rect());
if(ret)
{
gc->BitBlt(rect.iTl,iKeyboard->NormalKeyBmp());
@@ -502,11 +503,12 @@
TBool bHasDrawn = EFalse;
if(UiLayout()->NotDrawToLayoutDevice())
{
- TBool ret = iKeyboard->PrepareKeyBmp(iKeyboard->HighightKeyBmp(),
+ /*TBool ret = iKeyboard->PrepareKeyBmp(iKeyboard->HighightKeyBmp(),
iKeyboard->HighlightKeyDev(),
rect,innerrect,
iKeyboard->KeySkinId(EKeyBmpHighlight),
- KAknsIIDDefault,Rect());
+ KAknsIIDDefault,Rect());*/
+ TBool ret = iKeyboard->PrepareHighlightKeyBmp(rect,innerrect,Rect());
if(ret)
{
gc->BitBlt(rect.iTl,iKeyboard->HighightKeyBmp());
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputuilayout.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputuilayout.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -187,6 +187,13 @@
DisableLayoutDrawing(*(reinterpret_cast<TBool*>(aData)));
}
break;
+ case ECmdPeninputEnalbeLayoutReDrawWhenActive:
+ {
+ TBool enableLayoutRedraw = ETrue;
+ TPtrC data(reinterpret_cast<TUint16*>(&enableLayoutRedraw),sizeof(TBool)/2);
+ SignalOwner(ESignalEnableLayoutRedrawWhenActive,data);
+ }
+ break;
default:
{
ret = -1;
@@ -480,6 +487,9 @@
{
iLayoutReady = EFalse;
iRootCtrl->OnDeActivate();
+ TBool enableLayoutRedraw = ETrue;
+ TPtrC data(reinterpret_cast<TUint16*>(&enableLayoutRedraw),sizeof(TBool)/2);
+ SignalOwner(ESignalEnableLayoutRedrawWhenActive,data);
}
// ---------------------------------------------------------------------------
// CFepUiLayout::SetLayoutPos
--- a/textinput/peninputarc/src/peninputserverapp/peninputserver.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputserverapp/peninputserver.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -187,6 +187,7 @@
//iDispMode = iDispModeForMask= CCoeEnv::Static()->WsSession().GetDefModeMaxNumColors(col,grey);
iPreNonGloebalNotesWndGrpId = -1;
iNoNeedClean = EFalse;
+ iEnablePriorityChangeOnOriChange = ETrue;
}
@@ -427,6 +428,9 @@
//
void CPeninputServer::ActivateSpriteInGlobalNotesL()
{
+ TBool notDraw = EFalse;
+ iUiLayout->HandleCommand( ECmdPeninputDisableLayoutDrawing,
+ (unsigned char*)¬Draw );
if(iActive)
{
if(iUseWindowCtrl)
@@ -591,13 +595,35 @@
}
}
}
+ iIsLayoutReDrawAllowWhenActive = EFalse;
}
else
{
//actived but dimmed by global notes
if(iUseWindowCtrl)
{
- ActivatePenUiLayout(EFalse);
+ /**
+ * 1. IF THE GLOBAL NOTES HAS BEEN OPENED UP, WE NEED TO REDRAW THE LAYOUT
+ * 2. IF iIsLayoutReDrawAllowWhenActive was set to be ETrue.
+ * if we did not put this condition guard, the layout
+ * redraw will be executed even if the layout is active. But if this flag is
+ * set to be ture, layout redraw will be carried out even if the layout is active, so
+ * it will leave this for layout to decide if it need set this flag to be ture or false
+ * in some special cases: for example for entering and exiting the spell mode.
+ *
+ */
+ if(iInGlobalNotesApp || iInGlobalEditorState || iIsLayoutReDrawAllowWhenActive )
+ {
+ ActivatePenUiLayout(EFalse);
+ if(iIsLayoutReDrawAllowWhenActive)
+ {
+ iIsLayoutReDrawAllowWhenActive = EFalse;
+ }
+ }
+ else
+ {
+ ActivatePenUiLayout(EFalse,ETrue);
+ }
if (iDimmed && (iInGlobalNotesApp || iInGlobalEditorState))
{
@@ -1132,7 +1158,12 @@
(unsigned char*)&iInputLanguage);
}
}
- break;
+ break;
+ case EPeninputEnablePriorityChangeOnOriChange:
+ {
+ TPckg<TBool> enablePriority( iEnablePriorityChangeOnOriChange );
+ aMessage.ReadL( 0, enablePriority );
+ }
default: //Let user pluging handling the user command
break;
}
@@ -1204,7 +1235,10 @@
iUILayoutReady = EFalse;
if(iUiLayout)
{
- ClearSpriteGc();
+ //if(!iUseWindowCtrl)
+ //{
+ //ClearSpriteGc();
+ //}
DeactivateSprite();
iDestroyingLayout = ETrue;
if(iUseWindowCtrl)
@@ -1545,7 +1579,7 @@
void CPeninputServer::DrawSprite()
{
- if(!iUiLayout)
+ if(!iUiLayout || iActive)
return;
ClearSpriteGc();
@@ -1674,7 +1708,10 @@
}
else
{
- ActivateSprite();
+ if(!iActive)
+ {
+ ActivateSprite();
+ }
}
}
@@ -1910,6 +1947,13 @@
}
}
break;
+ case ESignalEnableLayoutRedrawWhenActive:
+ {
+ TUint16* buf = const_cast<TUint16* >( aEventData.Ptr() );
+ TBool* retVal = reinterpret_cast< TBool* > ( buf );
+ iIsLayoutReDrawAllowWhenActive = *retVal;
+ }
+ break;
default:
if(iUseWindowCtrl)
@@ -2018,7 +2062,54 @@
// ---------------------------------------------------------------------------
//
void CPeninputServer::HandleResourceChange(TInt aType)
- {
+ {
+ #ifdef FIX_FOR_NGA
+ // iEnablePriorityChangeOnOriChange will be set to be EFalse, if some dialog in FEP end were opened and
+ // not close after rotation for example: Symbol Table, Writing Language list and Match Dialog on ITI
+ if(iUiLayout && iActive && iEnablePriorityChangeOnOriChange && aType == KEikDynamicLayoutVariantSwitch)
+ {
+ TPixelsTwipsAndRotation size;
+ CCoeEnv::Static()->ScreenDevice()->GetDefaultScreenSizeAndRotation(size);
+
+ TBool isPortrait = ( size.iPixelSize.iWidth < size.iPixelSize.iHeight );
+
+ TBool needToLiftUp = EFalse;
+ TInt inputMode = 0;
+ inputMode = iUiLayout->PenInputType();
+ if(inputMode == EPluginInputModeItut)
+ {
+ if(!isPortrait)
+ {
+ needToLiftUp = ETrue;
+ }
+ }
+ else if(inputMode == EPluginInputModeFSQ)
+ {
+ if(isPortrait)
+ {
+ needToLiftUp = ETrue;
+ }
+ }
+
+ else if(inputMode == EPluginInputModeFingerHwr)
+ {
+ ClearSpriteGc();
+ //Close the UI immediately, without notify UI handler
+ DeactivateSprite(ETrue, ETrue);
+ }
+ if(needToLiftUp)
+ {
+ if(iPenUiCtrl)
+ {
+
+ // must lift up the wnd group priority otherwise when rotating screen, the underling application will show first and then
+ // our PEN UI, but we should keep an eye on this issue. If NGA will fix the fliker assigned on them, we will check if it will
+ // work if we remove this line of code.
+ iPenUiCtrl->LiftUpPriority();
+ }
+ }
+ }
+ #endif
if(iUiLayout && !(iUiLayout->PenInputType() & DisabledByOrientation()) )
{
//hide the layout if it's already shown
@@ -2135,11 +2226,31 @@
if(iActive && !iPrevActive && inputMode != EPluginInputModeFSQ && iBackgroudDefaultOri == CAknAppUiBase::EAppUiOrientationUnspecified )
{
-
+ #ifdef FIX_FOR_NGA
+ if(inputMode == EPluginInputModeFingerHwr)
+ {
+ iPrevActive = ETrue;
+ ClearSpriteGc();
+ //Close the UI immediately, without notify UI handler
+ DeactivateSprite(ETrue, ETrue);
+ }
+ else
+ {// for other input mode: we are not going to cose UI, since it will cause
+ // serious fliker: which will have the mixed ui(with other app ui) on pen input ui
+
+ if(iUiLayout)
+ {
+ TBool notDraw = ETrue;
+ iUiLayout->HandleCommand(ECmdPeninputDisableLayoutDrawing,(unsigned char*)¬Draw);
+ iUiLayout->OnDeActivate();
+ }
+ }
+ #else
iPrevActive = ETrue;
ClearSpriteGc();
- //Close the UI immediately, without notify UI handler
- DeactivateSprite(ETrue, ETrue);
+ //Close the UI immediately, without notify UI handler
+ DeactivateSprite(ETrue, ETrue);
+ #endif
}
}
@@ -2263,13 +2374,14 @@
if(iActive)
{
if( aEvent.Type() == TRawEvent::ENone &&
- aEvent.IsTip() &&
- iCrpService->IsDsaActive() )
+ aEvent.IsTip()
+ && iCrpService && iCrpService->IsDsaActive() )
{
SignalOwner( ESignalLayoutClosed, KNullDesC );
}
- TBool handled = iUiLayout->HandleEventL(ERawEvent,&aEvent);
+ TBool handled = iUiLayout ? iUiLayout->HandleEventL(ERawEvent,&aEvent)
+ : EFalse;
if (TRawEvent::EButton1Down == aEvent.Type())
{
--- a/textinput/peninputarc/src/peninputserverapp/peninputserversession.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputserverapp/peninputserversession.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -319,6 +319,7 @@
case EPeninputRequestDimResChangeLayout:
case EPeninputRequestSupportInputMode:
case EPeninputRequestSetInputLanguage:
+ case EPeninputEnablePriorityChangeOnOriChange:
ret = iPenInputSvr.HandleMessageL(aMessage);
break;
case EPeninputRequestUpdateAppInfo:
--- a/textinput/peninputarc/src/peninputserverapp/penuiwndctrl.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputarc/src/peninputserverapp/penuiwndctrl.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -110,28 +110,39 @@
void CPenUiWndCtrl::Draw(const TRect& aRect) const
{
- if(iNotUpdating)
+ if (iNotUpdating)
return;
-
+
CWindowGc& gc = SystemGc();
-
- if ( iShowPopup )
+ if (iShowPopup)
{
//layout is extended by popup
- gc.SetClippingRect( iLayoutClipRect );
+ TRect rect = aRect;
+ rect.Intersection(iLayoutClipRect);
+ TPoint pos = rect.iTl - iLayoutClipRect.iTl;
+ gc.BitBlt(pos, iBitmap, rect);
+#ifdef FIX_FOR_NGA
+ //draw bubble
+ for (TInt i = 0; i < iBubblesArea.Count(); ++i)
+ {
+ gc.BitBlt(iBubblesPos[i].iTl, iBubblesArea[i]);
+ }
+#endif
+ return;
+ //layout is extended by popup
+ //gc.SetClippingRect( iLayoutClipRect );
}
-
- #ifdef FIX_FOR_NGA
- gc.BitBlt(TPoint(0,0),iBitmap,Rect());
+#ifdef FIX_FOR_NGA
+ gc.BitBlt(TPoint(0, 0), iBitmap, Rect());
+ //draw bubble
+ for (TInt i = 0; i < iBubblesArea.Count(); ++i)
+ {
+ gc.BitBlt(iBubblesPos[i].iTl, iBubblesArea[i]);
+ }
+#else
+ gc.BitBlt(aRect.iTl,iBitmap,aRect);
+#endif
- //draw bubble
- for(TInt i = 0 ; i < iBubblesArea.Count(); ++i)
- {
- gc.BitBlt(iBubblesPos[i].iTl,iBubblesArea[i]);
- }
- #else
- gc.BitBlt(aRect.iTl,iBitmap,aRect);
- #endif
}
void CPenUiWndCtrl::RefreshUI()
@@ -230,7 +241,6 @@
return;
}
- iCursorBmp = const_cast<CFbsBitmap*>(aCursorBmp);
iCursorPos = aRect.iTl;
if(iCursorRect != aRect)
@@ -335,6 +345,7 @@
void CPenUiWndCtrl::ShowPenUiL(TBool /*aDimmed*/)
{
+ iCursorWnd->SetCursorVisible(EFalse);
if (iResourceChange)
{
ActivateL();
@@ -396,7 +407,6 @@
void CPenUiWndCtrl::ClosePenUi(TBool aResChanging)
{
- iCursorBmp = NULL;
if (aResChanging)
{
TRAP_IGNORE(iIncallBubble->SetIncallBubbleFlagsL( EAknStatusBubbleInputHide ));
@@ -495,8 +505,14 @@
{
//TBool dim = IsDimmed();
RestoreSystemFadeStatus();
- //have to call this, otherwise pen UI is faded
- iWndGroup.SetNonFading(ETrue);
+
+ // if we were opened under a global note
+ // we need to dim pen ui
+ if(aType != EGlobleNotesWithEditor && aType != EGlobleNotes)
+ {
+ //have to call this, otherwise pen UI is faded
+ iWndGroup.SetNonFading(ETrue);
+ }
if (iResourceChange)
{
@@ -720,6 +736,10 @@
case ESignalDisableUpdating:
{
iNotUpdating = * (reinterpret_cast<TBool*>( const_cast<TUint16*>( aEventData.Ptr() )));
+ if(iNotUpdating)
+ {
+ UpdateCursor(EFalse,NULL,iCursorWnd?iCursorWnd->Rect():TRect(TPoint(0,0),TSize(0,0)));
+ }
}
break;
case ESignalDrawBackground:
@@ -819,7 +839,15 @@
iAutoRefreshTimer->Cancel();
}
}
-
+
+void CPenUiWndCtrl::LiftUpPriority()
+ {
+ TInt priority = GetWndPriority();
+ iPriority = priority;
+ iWndGroup.SetOrdinalPosition( 0, iPriority);
+ DrawableWindow()->SetOrdinalPosition( 0, iPriority);
+ }
+
//End Of File
// class CInternalBkCtrl
CInternalBkCtrl::CInternalBkCtrl(RWindowGroup& aWndGroup)
--- a/textinput/peninputcommonctrls/src/peninputbuttons/peninputbutton.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputcommonctrls/src/peninputbuttons/peninputbutton.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -4221,7 +4221,7 @@
//PRINTF((_L("Set long press Timer\n")));
if ( IsDimmed() )
{
- return;
+ return NULL;
}
iLongPressTimer->SetTimer(iLongPressInterval);
@@ -4239,7 +4239,7 @@
if ( IsDimmed() )
{
- return;
+ return NULL;
}
CancelTimer();
--- a/textinput/peninputfingerhwr/src/peninputfingerhwrlayout.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputfingerhwr/src/peninputfingerhwrlayout.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -165,6 +165,12 @@
break;
case ECmdPenInputWindowOpen:
{
+ if( !iIsOpenFingerHWR )
+ {
+ iDataStore->GetKeyboardType();
+ iDataStore->SetKeyboardToQwerty();
+ }
+
LayoutOwner()->Hide( EFalse );
RootControl()->UpdateValidRegion( NULL, EFalse );
@@ -174,12 +180,6 @@
iDataStore->SetScreenSize(hwrSize);
ChangeCurStateManagerToStandby();
- if( !iIsOpenFingerHWR )
- {
- iDataStore->GetKeyboardType();
- iDataStore->SetKeyboardToQwerty();
- }
-
iIsOpenFingerHWR = ETrue;
ret = KErrNone;
}
--- a/textinput/peninputfingerhwr/src/peninputfingerhwrwnd.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputfingerhwr/src/peninputfingerhwrwnd.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -2017,13 +2017,13 @@
iWritingBox->Hide( ETrue );
iVirtualNumpad->Hide( ETrue );
- iVirtualSctpad->Hide( EFalse );
- iVirtualSctpadFix->Hide( EFalse );
-
iArrowLeftBtn->Hide( ETrue );
iArrowRightBtn->Hide( ETrue );
iArrowUpBtn->Hide( ETrue );
iArrowDownBtn->Hide( ETrue );
+
+ iVirtualSctpad->Hide( EFalse );
+ iVirtualSctpadFix->Hide( EFalse );
iOptionBtn->Hide( EFalse );
iImeSwitchBtn->Hide( EFalse );
--- a/textinput/peninputgenericitut/src/peninputgenericitutlayout.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputgenericitut/src/peninputgenericitutlayout.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -170,7 +170,6 @@
case ECmdPenInputLanguage:
{
TRAP_IGNORE(SetInputLanguageL(*data));
-
}
break;
case ECmdPenInputRange:
@@ -206,10 +205,10 @@
case ECmdPenInputFingerSpelling:
{
- if (UiMgr())
+ if ( iWesternUiMgr )
{
TInt handled = KErrNone;
- TRAP_IGNORE(handled = UiMgr()->HandleCommandL(aCmd, aData));
+ TRAP_IGNORE( handled = iWesternUiMgr->HandleCommandL( aCmd, aData ));
return handled;
}
}
@@ -385,14 +384,21 @@
void CGenericItutUiLayout::SetInputModeL(TInt aMode)
{
- TBool numericOnlyChanged = iDataMgr->IsCharFlagChanged() ? ETrue : EFalse;
- //only number mode need judge it
+ // Input mode can not be set to EnativeNumber in Thai
+ TInt inputLanguage = iDataMgr->InputLanguage();
+ if ( aMode == ENativeNumber && inputLanguage == ELangThai )
+ {
+ aMode = ENumber;
+ }
+
+ TBool numericOnlyChanged = iDataMgr->IsCharFlagChanged() ? ETrue : EFalse;
+ //only number mode need judge it
- // both EStrokeFind and EStroke will be stored as Estroke /////
- if ( aMode != iDataMgr->InputMode() ||
- aMode == EStroke || aMode == EStrokeFind ||
- aMode == EZhuyin || aMode == EZhuyinFind ||
- numericOnlyChanged )
+ // both EStrokeFind and EStroke will be stored as Estroke /////
+ if ( aMode != iDataMgr->InputMode() ||
+ aMode == EStroke || aMode == EStrokeFind ||
+ aMode == EZhuyin || aMode == EZhuyinFind ||
+ numericOnlyChanged )
{
// deactivate original uimgr first
if (iCurrentUiMgr
--- a/textinput/peninputgenericitut/src/peninputgenericitutwindow.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputgenericitut/src/peninputgenericitutwindow.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -1475,6 +1475,12 @@
void CGenericItutWindow::SetSpellDisplayContentL( TUint8* aData )
{
+ TBool isInSpell = iDataMgr->IsSpellMode();
+ if ( isInSpell )
+ {
+ return;
+ }
+
RDesReadStream readStream;
TPtr8 countPtr( aData, 3 * sizeof(TInt), 3 * sizeof(TInt));
--- a/textinput/peninputgenericvkb/src/peninputgenericvkblayout.cpp Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputgenericvkb/src/peninputgenericvkblayout.cpp Wed Jun 09 10:03:19 2010 +0300
@@ -496,10 +496,10 @@
break;
}
}
+ TBool bIsMirror = EFalse;
+ bIsMirror = TranslateMirrorUnicode( inputCode, outputCode );
- isDottedChar = TranslateMirrorUnicode( inputCode, outputCode );
-
- if (isDottedChar)
+ if ( isDottedChar || bIsMirror )
{
number->Des().Append( outputCode );
data->iKeyData.Set(*number);
--- a/textinput/peninputsplititut/rom/peninputsplititut_variant.iby Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputsplititut/rom/peninputsplititut_variant.iby Wed Jun 09 10:03:19 2010 +0300
@@ -27,6 +27,7 @@
#ifdef RD_SCALABLE_UI_V2
+#if !defined(__CHINESE) && !defined(__KOREAN)
data = DATAZ_\RESOURCE_FILES_DIR\plugins\peninputsplititut.rsc RESOURCE_FILES_DIR\plugins\peninputsplititut.rsc
data = DATAZ_\RESOURCE_FILES_DIR\apps\peninputsplititut.mif RESOURCE_FILES_DIR\apps\peninputsplititut.mif
ECOM_PLUGIN(peninputsplititut.dll,peninputsplititut.rsc)
@@ -91,6 +92,7 @@
data = DATAZ_\RESOURCE_FILES_DIR\plugins\peninputsplititutconfig_devanagari.rsc RESOURCE_FILES_DIR\plugins\peninputsplititutconfig_devanagari.rsc
#endif // hindi marathi
+#endif // __CHINESE
#endif // RD_SCALABLE_UI_V2
#endif //FF_VIRTUAL_ITUT_INPUT
--- a/textinput/peninputsplititut/rom/peninputsplititutresources.iby Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputsplititut/rom/peninputsplititutresources.iby Wed Jun 09 10:03:19 2010 +0300
@@ -26,9 +26,14 @@
#ifdef RD_SCALABLE_UI_V2
+#if !defined(__CHINESE) && !defined(__KOREAN)
+
data = DATAZ_\RESOURCE_FILES_DIR\plugins\peninputsplititutnew.rsc RESOURCE_FILES_DIR\plugins\peninputsplititutnew.rsc
+
+#endif // __CHINESE __KOREAN
+
#endif // RD_SCALABLE_UI_V2
#endif //FF_VIRTUAL_ITUT_INPUT
--- a/textinput/peninputsplitqwerty/rom/peninputsplitqwerty_variant.iby Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputsplitqwerty/rom/peninputsplitqwerty_variant.iby Wed Jun 09 10:03:19 2010 +0300
@@ -26,6 +26,8 @@
#if defined(__VIRTUAL_KEYBOARD_INPUT) || defined(FF_VIRTUAL_FULLSCR_QWERTY_INPUT)
#ifdef RD_SCALABLE_UI_V2
+#if !defined(__CHINESE) && !defined(__KOREAN)
+
#if defined(LOCALES_SC_IBY) || defined(__LOCALES_01_IBY__)|| defined(__LOCALES_157_IBY__) || defined(__LOCALES_158_IBY__) \
|| defined(__LOCALES_159_IBY__) || defined(__LOCALES_10_IBY__) || defined(__LOCALES_161_IBY__) || defined(__LOCALES_129_IBY__) || defined(__LOCALES_186_IBY__) || defined(__LOCALES_230_IBY__)
#define PENINPUT_VKB_GENERIC_PLUGIN
@@ -261,6 +263,8 @@
ECOM_PLUGIN(peninputsplitqwerty.dll,peninputsplitqwerty.rsc)
#endif //PENINPUT_VKB_GENERIC_PLUGIN
+
+#endif // __CHINESE __KOREAN
#endif // RD_SCALABLE_UI_V2
#endif //__VIRTUAL_KEYBOARD_INPUT || FF_VIRTUAL_FULLSCR_QWERTY_INPUT
#endif // __PEN_SUPPORT
--- a/textinput/peninputsplitqwerty/rom/peninputsplitqwertyresources.iby Tue May 25 13:03:44 2010 +0300
+++ b/textinput/peninputsplitqwerty/rom/peninputsplitqwertyresources.iby Wed Jun 09 10:03:19 2010 +0300
@@ -25,10 +25,11 @@
#ifdef __PEN_SUPPORT
#if defined(__VIRTUAL_KEYBOARD_INPUT) || defined(FF_VIRTUAL_FULLSCR_QWERTY_INPUT)
#ifdef RD_SCALABLE_UI_V2
-
+#if !defined(__CHINESE) && !defined(__KOREAN)
data = DATAZ_\RESOURCE_FILES_DIR\plugins\peninputssqwin.rsc RESOURCE_FILES_DIR\plugins\peninputssqwin.rsc
+#endif // __CHINESE __KOREAN
#endif // RD_SCALABLE_UI_V2
#endif //__VIRTUAL_KEYBOARD_INPUT || FF_VIRTUAL_FULLSCR_QWERTY_INPUT
#endif // __PEN_SUPPORT