From fb90f7ffe49c07e82cd8cf68012929c87319f656 Mon Sep 17 00:00:00 2001 From: John Scipione Date: Tue, 10 Sep 2013 18:46:09 -0400 Subject: [PATCH] ScreenSaver: ScrollToSelection off-by-one For some reason calling PopulateScreenSaver() list in AllAttached() scrolls the selection off-by-one, so, call PopulateScreenSaverList() in AttachedToWindow() and then call ScrollToSelection() again in AllAttached() which seems to fix the problem. --- src/preferences/screensaver/ScreenSaverWindow.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/preferences/screensaver/ScreenSaverWindow.cpp b/src/preferences/screensaver/ScreenSaverWindow.cpp index 4d4303cc1a..2bd834dcd0 100644 --- a/src/preferences/screensaver/ScreenSaverWindow.cpp +++ b/src/preferences/screensaver/ScreenSaverWindow.cpp @@ -583,6 +583,8 @@ ModulesView::DetachedFromWindow() void ModulesView::AttachedToWindow() { + PopulateScreenSaverList(); + fScreenSaversListView->SetTarget(this); fTestButton->SetTarget(this); fAddButton->SetTarget(this); @@ -592,7 +594,8 @@ ModulesView::AttachedToWindow() void ModulesView::AllAttached() { - PopulateScreenSaverList(); + fScreenSaversListView->ScrollToSelection(); + // This only works after the list view is attached fScreenSaversListView->Invoke(new BMessage(kMsgSaverSelected)); }