diff -r 25214794fad6 -r 08ffbd51e3fd browserui/browser/FavouritesSrc/BrowserAdaptiveListPopup.cpp --- a/browserui/browser/FavouritesSrc/BrowserAdaptiveListPopup.cpp Tue Apr 27 16:41:18 2010 +0300 +++ b/browserui/browser/FavouritesSrc/BrowserAdaptiveListPopup.cpp Tue May 11 16:16:13 2010 +0300 @@ -270,7 +270,7 @@ { User::Leave(KErrCouldNotConnect); } - + iListScrollTimer = CPeriodic::NewL(CActive::EPriorityIdle); } // --------------------------------------------------------- @@ -285,6 +285,11 @@ delete iItemNamesToShow; delete iPrevGotoContent; delete iFirstGotoContent; + if(iListScrollTimer) + { + iListScrollTimer->Cancel(); + delete iListScrollTimer; + } } // --------------------------------------------------------- @@ -636,7 +641,13 @@ AknListBoxLayouts::SetupListboxPos( *iList, AppLayout::list_single_graphic_popup_wml_pane( 0 )); } //the last item is visible - iList->ScrollToMakeItemVisible( iList->Model()->NumberOfItems()-1 ); + //ScrollToMakeItemVisible scrolls only after some delay + if(!iListScrollTimer->IsActive()) + { + iListScrollTimer->Start(20, 0, + TCallBack(ListScrollTimerCallBack, this)); + } + #ifdef BRDO_TOUCH_ENABLED_FF const CFont* pFont = AknLayoutUtils::FontFromId(EAknLogicalFontPrimaryFont); TFontSpec fontSpec = pFont->FontSpecInTwips(); @@ -1293,5 +1304,17 @@ iMaxRecentUrlsToShow = maxRecentUrls; } +TInt CBrowserAdaptiveListPopup::ListScrollTimerCallBack(TAny* aAny) + { + CBrowserAdaptiveListPopup* self = static_cast( aAny ); + self->DoListScrolling(); + self->iListScrollTimer->Cancel(); + return KErrNone; + } + +void CBrowserAdaptiveListPopup::DoListScrolling() + { + iList->ScrollToMakeItemVisible( iList->Model()->NumberOfItems()-1 ); + } // End of File