diff -r 5e18d8c489d6 -r 6c2c2d3ab788 textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutvkb.cpp --- 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