textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbubblectrl.cpp
branchRCL_3
changeset 16 857bebeecec0
parent 15 6c2c2d3ab788
child 18 b1ea1642412e
--- a/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbubblectrl.cpp	Wed Jun 09 10:03:19 2010 +0300
+++ b/textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbubblectrl.cpp	Mon Jun 21 16:02:35 2010 +0300
@@ -105,11 +105,13 @@
 
 EXPORT_C void CBubbleCtrl::Popup(const TRect& aRect)
     {
-    SetRect(aRect);
+    //SetRect(aRect);
 
     if(iFreeze)
         {
-        iShowing = ETrue;              
+        iShowing = ETrue; 
+        SetRect(aRect);
+        
         SetHidenFlag(EFalse);   
         /*
         if(UiLayout()->NotDrawToLayoutDevice())
@@ -131,7 +133,9 @@
         }
     if( !iShowing || iNeedRedraw )
         {
-        iShowing = ETrue;  
+        iShowing = ETrue;
+        SetRect(aRect);
+        
         TRect rect = Rect();
         //SetRect(aRect);
         SetHidenFlag(EFalse);        
@@ -588,39 +592,46 @@
 
 EXPORT_C void CBubbleCtrl::SetRect(const TRect& aRect)
     {
-    if( aRect == Rect())
-        {
-        return;
-        }
-    else
-        {
-        if( UiLayout()->NotDrawToLayoutDevice())
-            {
-            struct SData
-                {
-                TRect rr;
-                TBool flag;
-                } data;
-        
-            // Remove the original region from list
-            data.rr = Rect();
-            data.flag = EFalse;
-            TPtrC ptrForRemove;
-            ptrForRemove.Set( 
-                    reinterpret_cast<const TUint16*>(&data),sizeof(data)/sizeof(TUint16));
-            UiLayout()->SignalOwner( ESignalPopupArea, ptrForRemove );
-            
-            // Add the new region to list
-            data.rr = aRect;
-            data.flag = ETrue;
-            TPtrC ptrForAdd;
-            ptrForAdd.Set( 
-                    reinterpret_cast<const TUint16*>(&data),sizeof(data)/sizeof(TUint16));
-            UiLayout()->SignalOwner( ESignalPopupArea, ptrForAdd );
-            }
-        }
-    CFepUiBaseCtrl::SetRect(aRect);
-    ResizeDeviceL();
+	if( !( UiLayout()->NotDrawToLayoutDevice()))
+		{
+		if( aRect != Rect())
+			{
+			CFepUiBaseCtrl::SetRect( aRect );
+			}
+		}
+	else
+		{
+		if( iShowing )
+			{
+			struct SData
+				{
+				TRect rr;
+				TBool flag;
+				} data;
+
+			 // Remove the original region from list
+			data.rr = Rect();
+			data.flag = EFalse;
+			TPtrC ptrForRemove;
+			ptrForRemove.Set( 
+				reinterpret_cast<const TUint16*>(&data), sizeof(data)/sizeof(TUint16));
+			UiLayout()->SignalOwner( ESignalPopupArea, ptrForRemove );
+
+			// Add the new region to list
+			data.rr = aRect;
+			data.flag = ETrue;
+			TPtrC ptrForAdd;
+			ptrForAdd.Set( 
+				reinterpret_cast<const TUint16*>(&data), sizeof(data)/sizeof(TUint16));
+			UiLayout()->SignalOwner( ESignalPopupArea, ptrForAdd );     
+			}
+			
+		if( aRect != Rect())
+			{
+			CFepUiBaseCtrl::SetRect( aRect );
+			ResizeDeviceL();
+			}                   
+		}
     }
 
 // ---------------------------------------------------------------------------