diff -r 08e69e956a8c -r 71dd06cfe933 uifw/ganes/src/HgVgMediaWall.cpp --- a/uifw/ganes/src/HgVgMediaWall.cpp Wed Mar 31 21:59:52 2010 +0300 +++ b/uifw/ganes/src/HgVgMediaWall.cpp Wed Apr 14 16:14:00 2010 +0300 @@ -66,7 +66,9 @@ using namespace AknTouchGestureFw; using namespace HgVgConstants; - +#ifdef SYMBIAN_GRAPHICS_FIXNATIVEORIENTATION + #define MEDIAWALL_ORIENTATION_FIX +#endif // ============================ MEMBER FUNCTIONS =============================== // ----------------------------------------------------------------------------- @@ -139,6 +141,7 @@ iCoeEnv->WsSession().Flush(); #endif + SetMopParent( aParent ); SetFlags( EHgVgMediaWallDrawToWindowGC | EHgVgMediaWallUninitialized ); @@ -327,7 +330,6 @@ delete iKeyScrollingTimer; delete iAnimationTimer; delete iDelayedInit; - //delete iCompositionSource; delete iEGL; delete iSpring; delete iSurfaceBitmap; @@ -489,7 +491,8 @@ void CHgVgMediaWall::HandlePointerEventL( const TPointerEvent& aEvent ) { // Not faded and initialized and the drawing is set to be done to WinGc - if( !( iFlags & EHgVgMediaWallFaded ) + if( aEvent.iType == TPointerEvent::EButton1Down + && !( iFlags & EHgVgMediaWallFaded ) && !( iFlags & EHgVgMediaWallUninitialized ) && iFlags & EHgVgMediaWallDrawToWindowGC ) { @@ -1288,10 +1291,11 @@ CHgVgMediaWall* self = const_cast(this); - if (!self->DrawAll()) + if (self && !self->DrawAll()) return; - - iEGL->SwapBuffers(); + + if( iEGL ) + iEGL->SwapBuffers(); } @@ -1300,31 +1304,33 @@ // --------------------------------------------------------------------------- // void CHgVgMediaWall::DoAnimation() - { + { + TBool draw = ETrue; switch (iAnimationState) { case EHgVgMediaWallAnimationStateTransition: case EHgVgMediaWallAnimationStateFastTransition: { - DoTransitionAnimation(); + draw = DoTransitionAnimation(); } break; case EHgVgMediaWallAnimationStateOpening: case EHgVgMediaWallAnimationStateClosing: case EHgVgMediaWallAnimationStateIdle: case EHgVgMediaWallAnimationStateItemOpened: { - DoSelectionAnimation(); + draw = DoSelectionAnimation(); } break; } - - DrawOpenVG(); + + if(draw) + DrawOpenVG(); } // --------------------------------------------------------------------------- // CHgVgMediaWall::DoSelectionAnimation() // --------------------------------------------------------------------------- // -void CHgVgMediaWall::DoSelectionAnimation() +TBool CHgVgMediaWall::DoSelectionAnimation() { TTime now; now.HomeTime(); @@ -1336,6 +1342,7 @@ // calculate animation alpha TReal alpha = (TReal)diff / (TReal)KSelectionAnimationDuration; + TBool draw = ETrue; switch (iAnimationState) { @@ -1354,6 +1361,7 @@ case EHgVgMediaWallAnimationStateItemOpened: { iAnimationTimer->Cancel(); + draw = EFalse; if (iSelectionObserver) { if (iMediaWallStyle == EHgVgMediaWallStyleGrid) @@ -1370,7 +1378,9 @@ { iAnimationTimer->Cancel(); } break; - } + } + + return draw; } @@ -1378,7 +1388,7 @@ // CHgVgMediaWall::DoTransitionAnimation() // --------------------------------------------------------------------------- // -void CHgVgMediaWall::DoTransitionAnimation() +TBool CHgVgMediaWall::DoTransitionAnimation() { TTime now; now.HomeTime(); @@ -1406,7 +1416,8 @@ } } } - + + return ETrue; } void CHgVgMediaWall::HandleTransitionAnimationStop() @@ -1599,6 +1610,11 @@ iEGL->InitWindowSurfaceL(Window()); } + if(!iCompositionSource) + { + iCompositionSource = CAlfCompositionSource::NewL(Window()); + iCompositionSource->EnableAlpha(); + } delete iRenderer; iRenderer = NULL; delete iArtistLabel; iArtistLabel = NULL; @@ -2322,6 +2338,7 @@ delete iSkinRenderer; iSkinRenderer = NULL; delete iEmptyLabel; iEmptyLabel = NULL; delete iEGL; iEGL = NULL; + delete iCompositionSource; iCompositionSource = NULL; } // ----------------------------------------------------------------------------- @@ -2501,8 +2518,8 @@ void CHgVgMediaWall::InitLabelsL(TInt aLayoutVariant) { - TAknTextComponentLayout l0 = AknLayoutScalable_Apps::main_cf0_pane_t1(aLayoutVariant); - TAknTextComponentLayout l1 = AknLayoutScalable_Apps::main_cf0_pane_t2(aLayoutVariant); + TAknTextComponentLayout l0 = AknLayoutScalable_Apps::main_cf0_pane_t2(aLayoutVariant); + TAknTextComponentLayout l1 = AknLayoutScalable_Apps::main_cf0_pane_t1(aLayoutVariant); TAknLayoutText t0; TAknLayoutText t1;