diff -r 8ca85d2f0db7 -r aabf2c525e0f uifw/AvKon/src/AknViewAppUi.cpp --- a/uifw/AvKon/src/AknViewAppUi.cpp Fri Feb 19 23:04:46 2010 +0200 +++ b/uifw/AvKon/src/AknViewAppUi.cpp Fri Mar 12 15:43:43 2010 +0200 @@ -27,6 +27,10 @@ #include #include #include +#include +#include + + #include "aknview.h" #include "aknshut.h" #include "aknenv.h" @@ -43,6 +47,10 @@ // CONSTANTS const TInt KAknAppUiViewsGranularity = 1; const TInt KAknViewAsyncPriority = EActivePriorityRedrawEvents + 10; +const TUid KCRUidThemes = { 0x102818E8 }; // defined in pslninternalcrkeys.h +const TUint32 KThemesTransitionEffects = 0x00000009; //defined in pslninternalcrkeys.h + + #ifdef RD_SPLIT_VIEW const TInt KAknSplitViewSize = 2; @@ -229,11 +237,25 @@ AddToStackL( iExtension->iNavigator, ECoeStackPriorityDefault - 1, ECoeStackFlagRefusesFocus ); #endif // RD_SPLIT_VIEW + + // disable CAknLocalScreenClearer when fullscreen effect is on + CRepository *uiThemeCenRep = CRepository::NewL( KCRUidThemes ); + CleanupStack::PushL( uiThemeCenRep ); + TInt effectValue = 0; + TBool themeEffectDisabled = ETrue; + if ( KErrNone == uiThemeCenRep->Get( KThemesTransitionEffects, effectValue ) ) + { + themeEffectDisabled = effectValue & AknTransEffect::EFullScreenTransitionsOff; + } + if ( iEikonEnv->RootWin().OrdinalPosition() == 0 && // only clear the window for foreground apps - iExtension->iUseDefaultScreenClearer ) + iExtension->iUseDefaultScreenClearer && themeEffectDisabled ) { iClearer = CAknLocalScreenClearer::NewL( ETrue ); } + + CleanupStack::PopAndDestroy( uiThemeCenRep ); // uiThemeCenRep + } // -----------------------------------------------------------------------------