diff -r 6c2c2d3ab788 -r 857bebeecec0 textinput/peninputarc/src/peninputlayoutcontrol/peninputlayoutbubblectrl.cpp --- 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(&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(&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(&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(&data), sizeof(data)/sizeof(TUint16)); + UiLayout()->SignalOwner( ESignalPopupArea, ptrForAdd ); + } + + if( aRect != Rect()) + { + CFepUiBaseCtrl::SetRect( aRect ); + ResizeDeviceL(); + } + } } // ---------------------------------------------------------------------------