--- 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