widgets/widgetapp/src/WidgetUiWindow.cpp
branchRCL_3
changeset 92 e1bea15f9a39
parent 91 30342f40acbf
child 93 79859ed3eea9
--- a/widgets/widgetapp/src/WidgetUiWindow.cpp	Thu Jul 15 19:53:20 2010 +0300
+++ b/widgets/widgetapp/src/WidgetUiWindow.cpp	Thu Aug 19 10:58:56 2010 +0300
@@ -99,7 +99,8 @@
       iPreferredOrientation(TBrCtlDefs::EOrientationUndefined),
       iIsCurrent(EFalse), iShowSoftkeys(EFalse), iWidgetLoaded(EFalse),
       iSchemeProcessing (EFalse), iNetworkState(ENetworkNotAllowed), iUserPermission(ETrue), 
-      iClickCount(0), iWidgetLoadStarted(EFalse)
+      iClickCount(0), iWidgetLoadStarted(EFalse), iSapiPromptCleared(ETrue),iNeedToIgnoreSapiNtfn(0),
+      iNeedToIgnoreSapiClearNtfn(0)
     {
     }
 
@@ -203,7 +204,7 @@
     iNeedToNotifyNetworkState = EFalse;
     // determine initial widget online/offline network state
     DetermineNetworkState();
-    iAsyncCallBack = new (ELeave) CAsyncCallBack(TCallBack(DeleteItself,this),CActive::EPriorityUserInput);
+    iAsyncCallBack = new (ELeave) CAsyncCallBack(TCallBack(DeleteItself,this),CActive::EPriorityLow);
     }
 
 // -----------------------------------------------------------------------------
@@ -1303,6 +1304,12 @@
     return !iConnecting;
     }
     
+
+void CWidgetUiWindow::DeleteItself()    
+	{	
+	iAsyncCallBack->CallBack();    
+	}
+
 // -----------------------------------------------------------------------------
 // CWidgetUiWindow::DeleteItself()
 // -----------------------------------------------------------------------------
@@ -1311,6 +1318,12 @@
     {
     CWidgetUiWindow* self = (CWidgetUiWindow*)aPtr;
     CWidgetUiWindowManager* p = &self->iWindowManager;
+    //if sync request start another event loop
+    if(self->Engine()->IsSynchRequestPending())
+    	{
+    	self->DeleteItself();
+    	return KErrNone;
+    	}
     delete self;
     //The Correct fix is to call AppUI::Exit()
     //But that is leaving