7007 { |
7010 { |
7008 iDisalbleFocusChangeForSCT = EFalse; |
7011 iDisalbleFocusChangeForSCT = EFalse; |
7009 return; |
7012 return; |
7010 } |
7013 } |
7011 #endif |
7014 #endif |
|
7015 // dim state changed, need fetch it again. |
|
7016 SendEventsToPluginManL(EPluginEnableFetchDimState); |
7012 |
7017 |
7013 //The CCPU flag ECcpuStateShiftkeyWasPressedBeforeLosingFocus suggests that the candidate list was closed |
7018 //The CCPU flag ECcpuStateShiftkeyWasPressedBeforeLosingFocus suggests that the candidate list was closed |
7014 //with a long key press of shift key. If so then, FEP needs to set the EFlagShiftKeyDepressed for the CCPU mode to work |
7019 //with a long key press of shift key. If so then, FEP needs to set the EFlagShiftKeyDepressed for the CCPU mode to work |
7015 //correctly. The state of the shift state is copied to local variable isToSetShiftKeyStateDown because as a function of change |
7020 //correctly. The state of the shift state is copied to local variable isToSetShiftKeyStateDown because as a function of change |
7016 //of focus the FEP clears all the CCPU flags which would reset ECcpuStateShiftkeyWasPressedBeforeLosingFocus also. |
7021 //of focus the FEP clears all the CCPU flags which would reset ECcpuStateShiftkeyWasPressedBeforeLosingFocus also. |
13957 // aPositionOfInsertionPointInInlineText is ignored, and its modified value |
13962 // aPositionOfInsertionPointInInlineText is ignored, and its modified value |
13958 // from the DecorateInlineText routine is also ignored. |
13963 // from the DecorateInlineText routine is also ignored. |
13959 |
13964 |
13960 aPositionOfInsertionPointInInlineText = decoratedInlineEdit->Length(); |
13965 aPositionOfInsertionPointInInlineText = decoratedInlineEdit->Length(); |
13961 |
13966 |
|
13967 iUncommittedText.iCursorPos = iUncommittedText.iAnchorPos + aPositionOfInsertionPointInInlineText; |
|
13968 |
13962 iInputCapabilities.FepAwareTextEditor()->UpdateFepInlineTextL( |
13969 iInputCapabilities.FepAwareTextEditor()->UpdateFepInlineTextL( |
13963 bufferPtr, aPositionOfInsertionPointInInlineText); |
13970 bufferPtr, aPositionOfInsertionPointInInlineText); |
13964 |
13971 |
13965 iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText); |
13972 iInputCapabilities.FepAwareTextEditor()->GetCursorSelectionForFep(iUncommittedText); |
13966 iUncommittedText.iAnchorPos-=decoratedInlineEdit->Length(); |
13973 iUncommittedText.iAnchorPos-=decoratedInlineEdit->Length(); |
15798 RemoveSuggestedAdvanceCompletionL(); |
15805 RemoveSuggestedAdvanceCompletionL(); |
15799 #endif // RD_INTELLIGENT_TEXT_INPUT |
15806 #endif // RD_INTELLIGENT_TEXT_INPUT |
15800 //Hindi Change Bug Fix |
15807 //Hindi Change Bug Fix |
15801 iSharedDataInterface->SetInputTextLanguage(languages->At(index)); |
15808 iSharedDataInterface->SetInputTextLanguage(languages->At(index)); |
15802 CAknEnv::Static()->SettingCache().Update(KEikInputLanguageChange); |
15809 CAknEnv::Static()->SettingCache().Update(KEikInputLanguageChange); |
|
15810 SetActiveInputLanguage( languages->At(index) ); |
15803 ChangeInputLanguageL(languages->At(index)); |
15811 ChangeInputLanguageL(languages->At(index)); |
15804 SetFlag( EFlagNewSharedDataInputLanguage | EFlagNewSharedDataInputMode ); |
15812 SetFlag( EFlagNewSharedDataInputLanguage | EFlagNewSharedDataInputMode ); |
15805 // This pice of code TSW Fute error fixing. |
15813 // This pice of code TSW Fute error fixing. |
15806 // Display the confirmation msg if the dictionary is not available for |
15814 // Display the confirmation msg if the dictionary is not available for |
15807 // Current language. |
15815 // Current language. |
17355 editorType = AknTextUtils::EDigitModeLatinNumberEditor; |
17363 editorType = AknTextUtils::EDigitModeLatinNumberEditor; |
17356 } |
17364 } |
17357 } |
17365 } |
17358 |
17366 |
17359 if (iLanguageCapabilities.iArabicIndicDigitsAllowed && |
17367 if (iLanguageCapabilities.iArabicIndicDigitsAllowed && |
17360 AknTextUtils::DigitModeQuery(editorType) && |
17368 (AknTextUtils::DigitModeQuery(editorType) || iMode == ENativeNumber) && |
17361 !ASCIIDigits) |
17369 !ASCIIDigits) |
17362 { |
17370 { |
17363 aDestination = EDigitTypeArabicIndic; |
17371 aDestination = EDigitTypeArabicIndic; |
17364 } |
17372 } |
17365 else if (iLanguageCapabilities.iEasternArabicIndicDigitsAllowed && |
17373 else if (iLanguageCapabilities.iEasternArabicIndicDigitsAllowed && |
17366 AknTextUtils::DigitModeQuery(editorType)&& |
17374 (AknTextUtils::DigitModeQuery(editorType) || iMode == ENativeNumber) && |
17367 !ASCIIDigits) |
17375 !ASCIIDigits) |
17368 { |
17376 { |
17369 aDestination = EDigitTypeEasternArabicIndic; |
17377 aDestination = EDigitTypeEasternArabicIndic; |
17370 } |
17378 } |
17371 /*Hindi*/ |
17379 /*Hindi*/ |
17372 else if ( iLanguageCapabilities.iIndicDigitsAllowed && |
17380 else if ( iLanguageCapabilities.iIndicDigitsAllowed && |
17373 AknTextUtils::DigitModeQuery(editorType) && |
17381 (AknTextUtils::DigitModeQuery(editorType) || iMode == ENativeNumber) && |
17374 !ASCIIDigits) |
17382 !ASCIIDigits) |
17375 { |
17383 { |
17376 aDestination = EDigitTypeDevanagari; |
17384 aDestination = EDigitTypeDevanagari; |
17377 } |
17385 } |
17378 else |
17386 else |
18210 |
18218 |
18211 if ( charMap == ENoCharacters && !IsAbleToLaunchSCT()) |
18219 if ( charMap == ENoCharacters && !IsAbleToLaunchSCT()) |
18212 { |
18220 { |
18213 currentEditorSCTResId = charMap; |
18221 currentEditorSCTResId = charMap; |
18214 } |
18222 } |
18215 if(R_AKNFEP_SCT_NUMERIC_MODE_CHARS_PLAIN == charMap && R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_LATIN_ONLY == currentEditorSCTResId) |
18223 if(R_AKNFEP_SCT_NUMERIC_MODE_CHARS_PLAIN == charMap && |
|
18224 ( R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG_LATIN_ONLY == currentEditorSCTResId || |
|
18225 R_AVKON_SPECIAL_CHARACTER_TABLE_DIALOG == currentEditorSCTResId ) ) |
18216 { |
18226 { |
18217 TBool isEmpty = ETrue; |
18227 TBool isEmpty = ETrue; |
18218 TRAP_IGNORE(isEmpty = GetSctLengthL(charMap)); |
18228 TRAP_IGNORE(isEmpty = GetSctLengthL(charMap)); |
18219 if(isEmpty) |
18229 if(isEmpty) |
18220 { |
18230 { |
18365 currentEditorSCTResId, |
18375 currentEditorSCTResId, |
18366 disableRecentItemRow)) |
18376 disableRecentItemRow)) |
18367 { |
18377 { |
18368 PrepareFepAfterDialogExitL(fepUid); |
18378 PrepareFepAfterDialogExitL(fepUid); |
18369 SetCcpuFlag(ECcpuStateSupressCursorMoveToEnd); |
18379 SetCcpuFlag(ECcpuStateSupressCursorMoveToEnd); |
18370 |
18380 // after closing SCT, need change dim state. |
18371 #ifdef RD_SCALABLE_UI_V2 |
18381 SendEventsToPluginManL(EPluginEnableFetchDimState); |
18372 |
18382 |
18373 if( iFepFullyConstructed && iFepPluginManager) |
|
18374 { |
|
18375 if (iFepPluginManager->PluginInputMode() == EPluginInputModeItut || |
|
18376 iFepPluginManager->PluginInputMode() == EPluginInputModeFSQ || |
|
18377 iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr) |
|
18378 { |
|
18379 SetStopProcessFocus(EFalse); |
|
18380 } |
|
18381 else |
|
18382 { |
|
18383 HandleChangeInFocus(); |
|
18384 } |
|
18385 } |
|
18386 else |
|
18387 { |
|
18388 HandleChangeInFocus(); |
|
18389 } |
|
18390 // Set the flag, not change focus for next. |
|
18391 iDisalbleFocusChangeForSCT = ETrue; |
|
18392 #endif |
|
18393 |
18383 |
18394 //Removes auto-complition part if SCT is launched and any special character is selected |
18384 //Removes auto-complition part if SCT is launched and any special character is selected |
18395 #ifdef RD_INTELLIGENT_TEXT_INPUT |
18385 #ifdef RD_INTELLIGENT_TEXT_INPUT |
18396 if( specialChars.Length() > 0 ) |
18386 if( specialChars.Length() > 0 ) |
18397 { |
18387 { |
18440 { |
18430 { |
18441 cursorSelection = TCursorSelection(iUncommittedText.iCursorPos + 1, |
18431 cursorSelection = TCursorSelection(iUncommittedText.iCursorPos + 1, |
18442 iUncommittedText.iAnchorPos); |
18432 iUncommittedText.iAnchorPos); |
18443 } |
18433 } |
18444 } |
18434 } |
|
18435 // Get new InputCapabilities immediatly. |
|
18436 CCoeEnv* coeEnv = CCoeEnv::Static(); |
|
18437 iInputCapabilities = static_cast<const CCoeAppUi*>(coeEnv->AppUi())->InputCapabilities(); |
18445 if (EditorState()) |
18438 if (EditorState()) |
18446 { |
18439 { |
18447 if (charAsDesc[0] == CEditableText::EParagraphDelimiter) |
18440 if (charAsDesc[0] == CEditableText::EParagraphDelimiter) |
18448 { |
18441 { |
18449 // This is line feed character. Post it to editor and let it decide |
18442 // This is line feed character. Post it to editor and let it decide |
18464 if (replace) |
18457 if (replace) |
18465 { |
18458 { |
18466 TKeyEvent delKey = {8, EStdKeyBackspace, 1, 0}; |
18459 TKeyEvent delKey = {8, EStdKeyBackspace, 1, 0}; |
18467 CCoeEnv::Static()->SimulateKeyEventL(delKey, EEventKey); |
18460 CCoeEnv::Static()->SimulateKeyEventL(delKey, EEventKey); |
18468 } |
18461 } |
18469 InsertTextFromDialogL(charAsDesc, cursorSelection); |
|
18470 //There may be several char to be inserted, need disable Focus change to avoid multi-focus change. |
18462 //There may be several char to be inserted, need disable Focus change to avoid multi-focus change. |
18471 #ifdef RD_SCALABLE_UI_V2 |
18463 #ifdef RD_SCALABLE_UI_V2 |
18472 iDisalbleFocusChangeForSCT = ETrue; |
18464 iDisalbleFocusChangeForSCT = ETrue; |
18473 #endif |
18465 #endif |
|
18466 InsertTextFromDialogL(charAsDesc, cursorSelection); |
18474 } |
18467 } |
18475 // Clear dead key, vowel sequence and vietnamese tone mark states. |
18468 // Clear dead key, vowel sequence and vietnamese tone mark states. |
18476 iPtiEngine->HandleCommandL(EPtiCommandGetAndClearLastVietnameseChar, |
18469 iPtiEngine->HandleCommandL(EPtiCommandGetAndClearLastVietnameseChar, |
18477 NULL); |
18470 NULL); |
18478 iPtiEngine->HandleCommandL(EPtiCommandClearVowelSeq, |
18471 iPtiEngine->HandleCommandL(EPtiCommandClearVowelSeq, |
18481 NULL); |
18474 NULL); |
18482 } |
18475 } |
18483 } |
18476 } |
18484 } |
18477 } |
18485 } |
18478 } |
|
18479 #ifdef RD_SCALABLE_UI_V2 |
|
18480 |
|
18481 if( iFepFullyConstructed && iFepPluginManager) |
|
18482 { |
|
18483 if (iFepPluginManager->PluginInputMode() == EPluginInputModeItut || |
|
18484 iFepPluginManager->PluginInputMode() == EPluginInputModeFSQ || |
|
18485 iFepPluginManager->PluginInputMode() == EPluginInputModeFingerHwr) |
|
18486 { |
|
18487 SetStopProcessFocus(EFalse); |
|
18488 } |
|
18489 else |
|
18490 { |
|
18491 HandleChangeInFocus(); |
|
18492 } |
|
18493 } |
|
18494 else |
|
18495 { |
|
18496 HandleChangeInFocus(); |
|
18497 } |
|
18498 // Set the flag, not change focus for next. |
|
18499 iDisalbleFocusChangeForSCT = ETrue; |
|
18500 #endif |
18486 } |
18501 } |
18487 else |
18502 else |
18488 { |
18503 { |
18489 iClosePeninputUi = EFalse; |
18504 iClosePeninputUi = EFalse; |
18490 iStopProcessFocus = EFalse; |
18505 iStopProcessFocus = EFalse; |