# HG changeset patch # User Sebastian Brannstrom # Date 1279225749 -3600 # Node ID 92eadaba67e64f737990263612cf77ccb3b448f6 # Parent 74d497f911e03741f72dc7d99ffe85acb2be5308 Fix so listbox position is kept when removing a show from queue diff -r 74d497f911e0 -r 92eadaba67e6 application/inc/PodcastQueueView.h --- a/application/inc/PodcastQueueView.h Wed Jul 14 14:53:21 2010 +0100 +++ b/application/inc/PodcastQueueView.h Thu Jul 15 21:29:09 2010 +0100 @@ -80,6 +80,9 @@ void DynInitMenuPaneL(TInt aResourceId,CEikMenuPane* aMenuPane); virtual void HandleLongTapEventL( const TPoint& aPenEventLocation, const TPoint& aPenEventScreenLocation); + +private: + TBool iDontUpdateList; }; #endif diff -r 74d497f911e0 -r 92eadaba67e6 application/src/PodcastQueueView.cpp --- a/application/src/PodcastQueueView.cpp Wed Jul 14 14:53:21 2010 +0100 +++ b/application/src/PodcastQueueView.cpp Thu Jul 15 21:29:09 2010 +0100 @@ -156,7 +156,7 @@ void CPodcastQueueView::UpdateListboxItemsL() { - if (iListContainer->IsVisible()) + if (iListContainer->IsVisible() && !iDontUpdateList) { TListItemProperties itemProps; TInt len = 0; @@ -250,7 +250,17 @@ TInt index = iListContainer->Listbox()->CurrentItemIndex(); if (index >= 0 && index < iPodcastModel.ActiveShowList().Count()) { + // this is an ugly hack to prevent UpdateListboxItemsL from being + // triggered from the show engine, which causes focus to jump + // around in an ugly fashion + iDontUpdateList = ETrue; TRAP_IGNORE(iPodcastModel.ShowEngine().RemoveDownloadL(iPodcastModel.ActiveShowList()[index]->Uid())); + iDontUpdateList = EFalse; + } + UpdateListboxItemsL(); + if (index > 0) + { + iListContainer->Listbox()->SetCurrentItemIndex(index - 1); } } break;