equal
deleted
inserted
replaced
97 RArray<CAknViewAppUi::TAknSplitViewContainer> iSplitViews; |
97 RArray<CAknViewAppUi::TAknSplitViewContainer> iSplitViews; |
98 CAknViewNavigator* iNavigator; |
98 CAknViewNavigator* iNavigator; |
99 TInt iFlags; |
99 TInt iFlags; |
100 #endif // RD_SPLIT_VIEW |
100 #endif // RD_SPLIT_VIEW |
101 TBool iUseDefaultScreenClearer; |
101 TBool iUseDefaultScreenClearer; |
|
102 |
|
103 /** |
|
104 * Used to control whether or not the default screen clearer |
|
105 * is used when launching the application as embedded. By default the |
|
106 * clearer isn't used for embedded applications. |
|
107 */ |
|
108 TBool iUseDefaultScreenClearerInEmbeddedLaunch; |
102 }; |
109 }; |
103 |
110 |
104 // ============================ MEMBER FUNCTIONS =============================== |
111 // ============================ MEMBER FUNCTIONS =============================== |
105 |
112 |
106 // ----------------------------------------------------------------------------- |
113 // ----------------------------------------------------------------------------- |
237 |
244 |
238 // Only clear the window for foreground apps. |
245 // Only clear the window for foreground apps. |
239 if ( iEikonEnv->RootWin().OrdinalPosition() == 0 && |
246 if ( iEikonEnv->RootWin().OrdinalPosition() == 0 && |
240 iExtension->iUseDefaultScreenClearer ) |
247 iExtension->iUseDefaultScreenClearer ) |
241 { |
248 { |
242 if ( !iEikonEnv->StartedAsServerApp() ) |
249 if ( !iEikonEnv->StartedAsServerApp() || |
243 { |
250 iExtension->iUseDefaultScreenClearerInEmbeddedLaunch ) |
|
251 { |
|
252 // Use transparent screen clearer for embedded applications, |
|
253 // except for when application wants to use the normal |
|
254 // screen clearer. |
244 iClearer = CAknLocalScreenClearer::NewL( ETrue ); |
255 iClearer = CAknLocalScreenClearer::NewL( ETrue ); |
245 } |
256 } |
246 else |
257 else |
247 { |
258 { |
248 iClearer = CAknLocalScreenClearer::NewL( ETrue, ETrue ); |
259 iClearer = CAknLocalScreenClearer::NewL( ETrue, ETrue ); |
1012 if ( !iExtension ) |
1023 if ( !iExtension ) |
1013 { |
1024 { |
1014 TRAP_IGNORE( iExtension = CAknViewAppUiExtension::NewL() ); |
1025 TRAP_IGNORE( iExtension = CAknViewAppUiExtension::NewL() ); |
1015 } |
1026 } |
1016 |
1027 |
1017 // Update flag |
1028 // Update the flags |
1018 if ( iExtension ) |
1029 if ( iExtension ) |
1019 { |
1030 { |
1020 iExtension->iUseDefaultScreenClearer = aEnable; |
1031 iExtension->iUseDefaultScreenClearer = aEnable; |
1021 } |
1032 iExtension->iUseDefaultScreenClearerInEmbeddedLaunch = aEnable; |
1022 |
1033 } |
1023 // Create/delete iClearer if required |
1034 |
1024 if ( aEnable && !iClearer ) |
1035 // Delete the clearer if it already exists but isn't required anymore. |
1025 { |
1036 // The clearer is created when needed on BaseConstructL. |
1026 TRAP_IGNORE( iClearer = CAknLocalScreenClearer::NewL( EFalse ) ); |
1037 if ( !aEnable && iClearer ) |
1027 } |
|
1028 else if ( !aEnable && iClearer ) |
|
1029 { |
1038 { |
1030 delete iClearer; |
1039 delete iClearer; |
1031 iClearer = NULL; |
1040 iClearer = NULL; |
1032 } |
1041 } |
1033 } |
1042 } |