When testing a screensaver..

1. Stop the preview
2. Start it again after the test is done

This prevents the case where the screen is filled with a color during the first frame of the screensaver. 
When you return to the preview (after the Test), that first frame is long gone and the preview is then invalid.

Reference : DebugNow screen saver.

Ticket #4252


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32450 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Philippe Saint-Pierre 2009-08-17 02:10:43 +00:00
parent 16424a2470
commit 4973feeaa0

View File

@ -113,6 +113,8 @@ class ModulesView : public BView {
BView* fSettingsView;
PreviewView* fPreviewView;
team_id fScreenSaverTestTeamId;
};
static const int32 kTimeInUnits[] = {
@ -362,13 +364,27 @@ ModulesView::MessageReceived(BMessage* message)
SaveState();
fSettings.Save();
be_roster->Launch(SCREEN_BLANKER_SIG, &fSettings.Message());
_CloseSaver();
be_roster->StartWatching(BMessenger(this, this->Looper()), B_REQUEST_QUIT);
be_roster->Launch(SCREEN_BLANKER_SIG, &fSettings.Message(), &fScreenSaverTestTeamId);
break;
case kMsgAddSaver:
fFilePanel->Show();
break;
case B_SOME_APP_QUIT: {
team_id team;
if (message->FindInt32("be:team", &team) == B_OK) {
if (team == fScreenSaverTestTeamId) {
be_roster->StopWatching(this);
_OpenSaver();
}
}
}
break;
default:
BView::MessageReceived(message);
}