From c8e6af02f23c8bd2719ef3f0baca793835b8baf1 Mon Sep 17 00:00:00 2001 From: John Scipione Date: Mon, 9 Sep 2013 19:48:20 -0400 Subject: [PATCH] ScreenSaver: Open screensaver initially via message ..instead of calling _OpenSaver() directly. At least one screensaver, Message, depended on the Bounds() of the preview to be set when run, which wasn't established when you first started the app causing the app to quit while trying to draw. Also call PopulateSaverList() in AllAttached() so that ScrollToSelection() works without having to be called again. Also, fix pointer style in ScreenSaverWindow::MessageReceived() --- src/preferences/screensaver/ScreenSaverWindow.cpp | 10 +++------- 1 file changed, 3 insertions(+), 7 deletions(-) diff --git a/src/preferences/screensaver/ScreenSaverWindow.cpp b/src/preferences/screensaver/ScreenSaverWindow.cpp index 94ea055547..5bd6b2ea9e 100644 --- a/src/preferences/screensaver/ScreenSaverWindow.cpp +++ b/src/preferences/screensaver/ScreenSaverWindow.cpp @@ -583,10 +583,6 @@ ModulesView::DetachedFromWindow() void ModulesView::AttachedToWindow() { - PopulateScreenSaverList(); - - _OpenSaver(); - fScreenSaversListView->SetTarget(this); fTestButton->SetTarget(this); fAddButton->SetTarget(this); @@ -596,8 +592,8 @@ ModulesView::AttachedToWindow() void ModulesView::AllAttached() { - // This only works after the view has been attached - fScreenSaversListView->ScrollToSelection(); + PopulateScreenSaverList(); + fScreenSaversListView->Invoke(new BMessage(kMsgSaverSelected)); } @@ -911,7 +907,7 @@ ScreenSaverWindow::~ScreenSaverWindow() void -ScreenSaverWindow::MessageReceived(BMessage *message) +ScreenSaverWindow::MessageReceived(BMessage* message) { switch (message->what) { case kMsgChangePassword: