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:
parent
16424a2470
commit
4973feeaa0
@ -113,6 +113,8 @@ class ModulesView : public BView {
|
|||||||
BView* fSettingsView;
|
BView* fSettingsView;
|
||||||
|
|
||||||
PreviewView* fPreviewView;
|
PreviewView* fPreviewView;
|
||||||
|
|
||||||
|
team_id fScreenSaverTestTeamId;
|
||||||
};
|
};
|
||||||
|
|
||||||
static const int32 kTimeInUnits[] = {
|
static const int32 kTimeInUnits[] = {
|
||||||
@ -362,13 +364,27 @@ ModulesView::MessageReceived(BMessage* message)
|
|||||||
SaveState();
|
SaveState();
|
||||||
fSettings.Save();
|
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;
|
break;
|
||||||
|
|
||||||
case kMsgAddSaver:
|
case kMsgAddSaver:
|
||||||
fFilePanel->Show();
|
fFilePanel->Show();
|
||||||
break;
|
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:
|
default:
|
||||||
BView::MessageReceived(message);
|
BView::MessageReceived(message);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user