From b27c5e98614dbf3f19143b681bebf8ca61cc6422 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Fri, 19 Aug 2005 14:21:49 +0000 Subject: [PATCH] Blackness screensaver is a special case we handle now (now rendering thread ...) git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13988 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/bin/screen_blanker/SSAwindow.cpp | 1 + src/bin/screen_blanker/ScreenSaverApp.cpp | 19 +++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/bin/screen_blanker/SSAwindow.cpp b/src/bin/screen_blanker/SSAwindow.cpp index 9d8d4ffdd0..57f3f36ce6 100644 --- a/src/bin/screen_blanker/SSAwindow.cpp +++ b/src/bin/screen_blanker/SSAwindow.cpp @@ -14,6 +14,7 @@ SSAwindow::SSAwindow(BRect frame) { frame.OffsetTo(0,0); fView = new BView(frame,"ScreenSaver View",B_FOLLOW_ALL,B_WILL_DRAW); + fView->SetViewColor(0,0,0); AddChild(fView); } diff --git a/src/bin/screen_blanker/ScreenSaverApp.cpp b/src/bin/screen_blanker/ScreenSaverApp.cpp index d39b760a7c..43b1fa7b1f 100755 --- a/src/bin/screen_blanker/ScreenSaverApp.cpp +++ b/src/bin/screen_blanker/ScreenSaverApp.cpp @@ -33,6 +33,7 @@ int main(int, char**) ScreenSaverApp::ScreenSaverApp() : BApplication(SCREEN_BLANKER_SIG), fWin(NULL), + fThreadID(-1), fRunner(NULL) { fBlankTime = system_time(); @@ -52,15 +53,15 @@ ScreenSaverApp::ReadyToRun() fThrd = new ScreenSaverThread(fWin ,fWin->fView, &fPref); fSaver = fThrd->LoadAddOn(); - if (!fSaver) { + if (fSaver) { + fWin->SetSaver(fSaver); + fThreadID = spawn_thread(ScreenSaverThread::ThreadFunc,"ScreenSaverRenderer", B_LOW_PRIORITY,fThrd); + resume_thread(fThreadID); + } else { fprintf(stderr, "could not load the screensaver addon\n"); - exit(1); } - fWin->SetSaver(fSaver); fWin->SetFullScreen(true); fWin->Show(); - fThreadID = spawn_thread(ScreenSaverThread::ThreadFunc,"ScreenSaverRenderer", B_LOW_PRIORITY,fThrd); - resume_thread(fThreadID); HideCursor(); } } @@ -70,7 +71,8 @@ void ScreenSaverApp::ShowPW() { fWin->Lock(); - suspend_thread(fThreadID); + if (fThreadID > -1) + suspend_thread(fThreadID); if (B_OK==fWin->SetFullScreen(false)) { fWin->Sync(); ShowCursor(); @@ -114,7 +116,8 @@ ScreenSaverApp::MessageReceived(BMessage *message) HideCursor(); fPww->Hide(); } - resume_thread(fThreadID); + if (fThreadID > -1) + resume_thread(fThreadID); fWin->Unlock(); default: BApplication::MessageReceived(message); @@ -140,7 +143,7 @@ ScreenSaverApp::Shutdown(void) { if (fWin) fWin->Hide(); - if (fThreadID) + if (fThreadID > -1) kill_thread(fThreadID); if (fThrd) delete fThrd;