diff -r 10e98eab6f85 -r a359256acfc6 widgets/widgetapp/src/WidgetUiAppUi.cpp --- a/widgets/widgetapp/src/WidgetUiAppUi.cpp Fri Jul 03 15:54:40 2009 +0100 +++ b/widgets/widgetapp/src/WidgetUiAppUi.cpp Thu Aug 27 07:44:59 2009 +0300 @@ -32,6 +32,10 @@ #include #include +#ifdef BRDO_WRT_HS_FF +#include +#endif + // EXTERNAL DATA STRUCTURES // EXTERNAL FUNCTION PROTOTYPES @@ -50,13 +54,12 @@ // FORWARD DECLARATIONS -// ============================= LOCAL FUNCTIONS ================================ - -static void NotifyWidgetRunning() +//LOCAL FUNCTION +void NotifyCommandHandled() { const TUid KMyPropertyCat = { 0x10282E5A }; enum TMyPropertyKeys { EMyPropertyState = 109 }; - TInt state( 1 ); + TInt state( 2 ); RProperty::Set( KMyPropertyCat, EMyPropertyState , state ); } @@ -239,13 +242,7 @@ ProcessMessageArgumentsL( aMessage, uid, operation ); iWindowManager->HandleWidgetCommandL( uid, operation ); - - // Widget is up and running, notify that next one can be launched - // TODO magic numbers from Launcher. - if( operation == LaunchMiniview ) - { - NotifyWidgetRunning(); - } + } // ------------------------------------------------------------------------------ @@ -377,13 +374,13 @@ if ( iWindowManager ) { if(aEventType == KAppOomMonitor_FreeRam ) - { + { +#ifdef OOM_WIDGET_CLOSEALL + CloseAllWidgetsAndExit(); +#else if // OOM_WIDGET_CLOSEALL iWindowManager->HandleOOMEventL(iIsForeground); - } - else if(aEventType == KAppOomMonitor_MemoryGood && iWindowManager->ActiveWindow()) - { - iWindowManager->ActiveWindow()->Engine()->HandleCommandL( - (TInt)TBrCtlDefs::ECommandMemoryGood + (TInt)TBrCtlDefs::ECommandIdBase); + CloseAndExitIfNoneLeft(); +#endif } } } @@ -486,16 +483,29 @@ // // ----------------------------------------------------------------------------- // -void CWidgetUiAppUi::AsyncExit( TBool aAllWidgets ) +void CWidgetUiAppUi::AsyncExit( TBool /*aAllWidgets*/ ) { - if (aAllWidgets && iWindowManager) - { - iWindowManager->CloseAllWindowsExceptCurrent(); - } iWidgetUiAsyncExit->Start(); // close current and exits app if no widgets left running } // ----------------------------------------------------------------------------- +// CWidgetUiAppUi::CloseAndExitIfNoneLeft() +// +// ----------------------------------------------------------------------------- +// +void CWidgetUiAppUi::CloseAndExitIfNoneLeft() + { + if(iWindowManager) + { + if(iWindowManager->CloseWindowWithLeastClick()) + { + //Exit Application + NotifyCommandHandled(); + Exit(); + } + } + } +// ----------------------------------------------------------------------------- // CWidgetUiAppUi::HandleDelayedForegroundEventCallback() // CIdle callback function to handle delayed foreground events for WidgetUI // @@ -532,10 +542,8 @@ TUint32& aOperation ) { __UHEAP_MARK; - CWidgetPropertyValue* value( NULL ); TUint32 version( -1 ); TPtrC ptr( NULL, 0 ); - HBufC* tmp( NULL ); RDesReadStream stream( aLine ); CleanupClosePushL( stream ); @@ -587,4 +595,23 @@ } } +#ifdef OOM_WIDGET_CLOSEALL +// ----------------------------------------------------------------------------- +// CWidgetUiAppUi::CloseAllWidgetsAndExit() +// Close all widgets and exit in case of OOM +// +// ----------------------------------------------------------------------------- +// +void CWidgetUiAppUi::CloseAllWidgetsAndExit() +{ + if(iWindowManager->CloseAllWidgetsUnderOOM()) + { + //Exit Application + NotifyCommandHandled(); + Exit(); + } +} + +#endif + // End of File