diff -r f7fbeaeb166a -r b23265fb36da bluetoothengine/bthid/mouse/Sesame_server/src/mousecursorimage.cpp --- a/bluetoothengine/bthid/mouse/Sesame_server/src/mousecursorimage.cpp Wed Apr 14 16:09:00 2010 +0300 +++ b/bluetoothengine/bthid/mouse/Sesame_server/src/mousecursorimage.cpp Tue Apr 27 16:49:44 2010 +0300 @@ -84,7 +84,7 @@ iSpriteGc->Reset(); iSpriteFunctions->SetPosition(TPoint()); iSpriteFunctions->SizeChangedL(); - + iLastUsedPoint = TPoint(0,0); // Set the screen visible // We are using a timer, not the built in synchronising, so turn it off iFunctions->SetSync( MAnimGeneralFunctions::ESyncNone ); @@ -155,13 +155,13 @@ DBG(RDebug::Print(_L(" CImage::DrawCursor iBitmapMaskDevice"))); // Draw mask iSpriteGc->Activate(iBitmapMaskDevice); - iSpriteGc->BitBlt(TPoint(0,0), iCursorBitmapMask); + iSpriteGc->BitBlt(iLastUsedPoint, iCursorBitmapMask); DBG(RDebug::Print(_L(" CImage::DrawCursor iBitmapMaskDevice"))); // Draw bitmap iSpriteGc->Activate(iBitmapDevice); - iSpriteGc->BitBlt(TPoint(0,0), iCursorBitmap); + iSpriteGc->BitBlt(iLastUsedPoint, iCursorBitmap); } DBG(RDebug::Print(_L(" CImage::DrawCursor END"))); } @@ -180,7 +180,6 @@ case KStartBTCursorAnim: { iSpriteFunctions->Activate(ETrue); - DrawCursor(); } break; @@ -194,23 +193,42 @@ { iSpriteFunctions->Activate(EFalse); iSpriteGc->Reset(); - iSpriteFunctions->SetPosition(TPoint()); + DBG(RDebug::Print( + _L("[BTHID]\tCImage::Command iLastUsedPoint (%d, %d)"), iLastUsedPoint.iX, iLastUsedPoint.iY)); + iSpriteFunctions->SetPosition(iLastUsedPoint); iSpriteFunctions->SizeChangedL(); iSpriteFunctions->Activate(ETrue); - DrawCursor(); + } + break; + + case KResetBTCursorAnim: + { + iSpriteFunctions->Activate(EFalse); + iSpriteGc->Reset(); + DBG(RDebug::Print(_L("[BTHID]\tCImage::Command KResetBTCursorAnim") )); + iLastUsedPoint.iX = 0; + iLastUsedPoint.iY = 0; + iSpriteFunctions->SetPosition(iLastUsedPoint); + iSpriteFunctions->SizeChangedL(); + iSpriteFunctions->Activate(ETrue); } break; case KChangeCursor: { - TPoint pos = *(TPoint *)aArgs; - iSpriteFunctions->SetPosition(pos); + iLastUsedPoint = *(TPoint *)aArgs; + DBG(RDebug::Print( + _L("[BTHID]\tCImage::Command KChangeCursor *(TPoint *)aArgs (%d, %d)"), iLastUsedPoint.iX, iLastUsedPoint.iY)); + iSpriteFunctions->SetPosition(iLastUsedPoint); } break; case KSendRawEvent: { TRawEvent rawEvent = *(TRawEvent *)aArgs; - iSpriteFunctions->SetPosition(rawEvent.Pos()); + iLastUsedPoint = rawEvent.Pos(); + DBG(RDebug::Print( + _L("[BTHID]\tCImage::Command KSendRawEvent rawEvent.Pos() (%d, %d)"), iLastUsedPoint.iX, iLastUsedPoint.iY)); + iSpriteFunctions->SetPosition(iLastUsedPoint); iFunctions->PostRawEvent( rawEvent ); } break;