widgets/widgetapp/src/WidgetUiWindowManager.cpp
branchRCL_3
changeset 36 c711bdda59f4
parent 35 1f3c3f2f5b0a
child 38 4917f9bf7995
--- 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 );
         }
     }