diff -r 1f3c3f2f5b0a -r c711bdda59f4 widgets/widgetapp/src/WidgetUiWindowManager.cpp --- a/widgets/widgetapp/src/WidgetUiWindowManager.cpp Mon Mar 15 12:44:50 2010 +0200 +++ b/widgets/widgetapp/src/WidgetUiWindowManager.cpp Wed Mar 31 23:16:40 2010 +0300 @@ -408,6 +408,12 @@ } } break; + case WidgetFullViewClose: + { + Exit( EEikCmdExit, aUid ); + needToNotify = EFalse ; + } + break; } if(needToNotify) // Widget is up and running, notify that next one can be launched @@ -643,6 +649,9 @@ if ( iClientSession.IsWidgetInFullView ( aWidgetWindow->Uid())) { +#ifdef BRDO_WRT_HS_FF + iCpsPublisher->ClearScreenshotL(*(aWidgetWindow->WidgetBundleId()), aWidgetWindow->Uid().iUid); +#endif HideWindow( aWidgetWindow ); if (aWidgetWindow == iActiveFsWindow) iActiveFsWindow = NULL; @@ -788,6 +797,10 @@ CWidgetUiWindow* window( GetWindow( aUid ) ); if( !window ) return; + +#ifdef BRDO_WRT_HS_FF + iCpsPublisher->ClearScreenshotL(*(GetWindow(aUid )->WidgetBundleId()), aUid.iUid); +#endif // make widgets act like separate applications by pushing to background // this way user is sent back to app shell or idle to run another widget @@ -912,6 +925,18 @@ { if(iDialogsProvider) iDialogsProvider->CancelAll(); + +#ifdef BRDO_WRT_HS_FF + CFbsBitmap* bitmap( new CFbsBitmap() ); + if ( bitmap && iCpsPublisher) + { + if(iActiveFsWindow) + { + TRAP_IGNORE(iActiveFsWindow->Engine()->TakeSnapshotL( *bitmap )); + TRAP_IGNORE(iCpsPublisher->PublishScreenshotL(*iActiveFsWindow->WidgetBundleId(),iActiveFsWindow->Uid().iUid, bitmap)); + } + } +#endif HideWindow( iActiveFsWindow ); } }