diff -r ecbabf52600f -r bd83ceabce89 textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkbkeyctrl.cpp --- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkbkeyctrl.cpp Wed Sep 01 12:23:33 2010 +0100 +++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkbkeyctrl.cpp Tue Sep 14 21:59:06 2010 +0300 @@ -106,9 +106,13 @@ BaseConstructL(); //tap accuracy enhancement - if( FeatureManager::FeatureSupported( KFeatureIdFfCapacitiveDisplay )) + if ( FeatureManager::FeatureSupported( KFeatureIdFfCapacitiveDisplay )) { - EnableExtResponseArea( ETrue, TRect(TPoint(10,10),TSize(10,10)) ); + TMargins margins; + UiLayout()->GetKeyExtResponseArea( margins ); + TPoint topLeftMargin( margins.iLeft, margins.iTop ); + TSize bottomRightMargin( margins.iRight, margins.iBottom ); + EnableExtResponseArea( ETrue, TRect( topLeftMargin,bottomRightMargin ) ); } } @@ -155,10 +159,29 @@ else if(iKeyboard->StarIcon() && iKeyInfo->KeyUnicodes(TVirtualKeyTextPos(i)) == KKeyStarCharacter ) { - //CFbsBitGc* gc = static_cast(BitGc()); + // Get the size of the icon + TSize starIconSize = iKeyboard->StarIcon()->Bitmap()->SizeInPixels(); + // Get the rect of draw icon area + TRect drawIconRect = textLayout.TextRect(); + // When the size of icon is different with the size of draw icon area, + // because the icon is drew from the left top coordinate of the draw + // icon area, so the icon will not be drew in the center. In this case, + // we need to adjust the top left coordinate of draw icon rect to + // make sure that the icon will be drew in the center of the key + if ( starIconSize != drawIconRect.Size()) + { + // Adjust the top left coordinate of draw icon rect to make sure + // that the icon will be drew in the center of the key + drawIconRect.iTl.iX += + ( drawIconRect.Width() - starIconSize.iWidth ) / 2; + drawIconRect.iTl.iY += + ( drawIconRect.Height() - starIconSize.iHeight ) / 2; + } + + // Draw the icon AknPenInputDrawUtils::DrawColorIcon( iKeyboard->StarIcon(), *aGc, - textLayout.TextRect() ); + drawIconRect ); } else {