diff -r fcdfafb36fe7 -r aecbbf00d063 uifw/AvKon/src/AknSctDialog.cpp --- a/uifw/AvKon/src/AknSctDialog.cpp Thu Aug 19 10:11:06 2010 +0300 +++ b/uifw/AvKon/src/AknSctDialog.cpp Tue Aug 31 15:28:30 2010 +0300 @@ -55,8 +55,6 @@ #include #include "aknsctfocushandler.h" -#include - // // class CAknCharMapDialog // @@ -434,12 +432,10 @@ // to select multiple characters before. if (aButtonId == EAknSoftkeyOk || aButtonId == EAknSoftkeySelect || aButtonId == EAknSoftkeyExit) { - // In Korean UI, SCT isn't closed by pressing "Select" softkey, + // In Japanese UI, SCT isn't closed by pressing "Select" softkey, // but SCT is closed by pressing "Back"(button id is EAknSoftkeyClose). - // Japanese feature for SCT will not be supported since TB9.2 PS2, - // so remove the code for Japanese SCT. MAknSctFocusHandler* handler = charmapControl->FocusHandler(); - if ( charmapControl->IsKoreanSctUi() && + if (charmapControl->IsJapaneseSctUi() && aButtonId != EAknSoftkeyExit && handler->FocusedControl() == charmapControl) { @@ -535,9 +531,8 @@ /// -- Change Window Priority for dialog and CBA DrawableWindow()->SetOrdinalPosition(0,ECoeWinPriorityAlwaysAtFront); // - ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition(0,ECoeWinPriorityAlwaysAtFront); - - CEikDialog::Extension()->SetPriority(CActive::EPriorityStandard); + ButtonGroupContainer().ButtonGroup()->AsControl()->DrawableWindow()->SetOrdinalPosition(0,ECoeWinPriorityAlwaysAtFront); + } EXPORT_C void CAknCharMapDialog::SetSizeAndPosition( const TSize& aSize ) @@ -597,7 +592,7 @@ case EKeyDownArrow: { TKeyResponse res = charmapControl->OfferKeyEventL(aKeyEvent, aModifiers); - RefreshTitleAndNaviL(); + RefreshTitleAndNavi(); return res; } @@ -607,6 +602,8 @@ TryExitL(EAknSoftkeySelect); return EKeyWasConsumed; } + break; + case '*': { if (!aKeyEvent.iRepeats) // switch another table when repeat count is 0 only. @@ -958,16 +955,23 @@ // EXPORT_C void CAknCharMapDialog::HandlePointerEventL(const TPointerEvent& aPointerEvent) { - if(!Rect().Contains(aPointerEvent.iPosition)) + if (!Rect().Contains( aPointerEvent.iPosition)) { if(aPointerEvent.iType == TPointerEvent::EButton1Down) { - TryExitL(EAknSoftkeyCancel); + TryExitL (EAknSoftkeyCancel); return; } + else if(aPointerEvent.iType == TPointerEvent::EButton1Up) + { + CAknCharMap* charMap = STATIC_CAST( CAknCharMap*, Control( EAknSCTQueryContentId ) ); + charMap->HandlePointerEventL( aPointerEvent); + } } - - CAknDialog::HandlePointerEventL(aPointerEvent); + else + { + CAknDialog::HandlePointerEventL(aPointerEvent); + } } void CAknCharMapDialog::SwitchTablesOrPagesL() @@ -1002,10 +1006,10 @@ CAknPopupHeadingPane* headingPane = STATIC_CAST(CAknPopupHeadingPane*, Control(EAknSCTQueryHeadingId)); charmapControl->NextPageL(); - RefreshTitleAndNaviL(); + RefreshTitleAndNavi(); } -void CAknCharMapDialog::RefreshTitleAndNaviL() +void CAknCharMapDialog::RefreshTitleAndNavi() { CAknCharMap* charmapControl = STATIC_CAST(CAknCharMap*, Control(EAknSCTQueryContentId)); CAknPopupHeadingPane* headingPane = STATIC_CAST(CAknPopupHeadingPane*, Control(EAknSCTQueryHeadingId));