From 056ae67fb4f3c22af90439144bd3438c73aa3965 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Fri, 19 Aug 2005 09:26:45 +0000 Subject: [PATCH] added a message runner so that rendering screensaver is resumed after some time has passed git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13980 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/bin/screen_blanker/ScreenSaverApp.cpp | 16 +++++++++++++++- src/bin/screen_blanker/ScreenSaverApp.h | 2 ++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/src/bin/screen_blanker/ScreenSaverApp.cpp b/src/bin/screen_blanker/ScreenSaverApp.cpp index 810e8267ef..0afd72b4b9 100755 --- a/src/bin/screen_blanker/ScreenSaverApp.cpp +++ b/src/bin/screen_blanker/ScreenSaverApp.cpp @@ -17,6 +17,8 @@ #include "ScreenSaverApp.h" +const int32 RESUME_SAVER = 'RSSV'; + // Start the server application. Set pulse to fire once per second. // Run until the application quits. @@ -30,7 +32,8 @@ int main(int, char**) // Construct the server app. Doesn't do much, at this point. ScreenSaverApp::ScreenSaverApp() : BApplication(SCREEN_BLANKER_SIG), - fWin(NULL) + fWin(NULL), + fRunner(NULL) { fBlankTime = system_time(); } @@ -75,6 +78,8 @@ ScreenSaverApp::ShowPW() fPww->Sync(); } fWin->Unlock(); + delete fRunner; + fRunner = new BMessageRunner(BMessenger(this), new BMessage(RESUME_SAVER), fPref.BlankTime(), 1); } @@ -89,12 +94,21 @@ ScreenSaverApp::MessageReceived(BMessage *message) if (strcmp(crypt(fPww->GetPassword(), salt),fPref.Password()) != 0) { beep(); fPww->SetPassword(""); + delete fRunner; + fRunner = new BMessageRunner(BMessenger(this), new BMessage(RESUME_SAVER), fPref.BlankTime(), 1); } else { PRINT(("Quitting!\n")); Shutdown(); } break; } + case RESUME_SAVER: + fWin->Lock(); + if (B_OK==fWin->SetFullScreen(true)) { + HideCursor(); + } + resume_thread(fThreadID); + fWin->Unlock(); default: BApplication::MessageReceived(message); break; diff --git a/src/bin/screen_blanker/ScreenSaverApp.h b/src/bin/screen_blanker/ScreenSaverApp.h index c7bce8c874..dad9d9806c 100755 --- a/src/bin/screen_blanker/ScreenSaverApp.h +++ b/src/bin/screen_blanker/ScreenSaverApp.h @@ -7,6 +7,7 @@ #define SCREEN_SAVER_APP_H #include +#include #include "SSAwindow.h" #include "ScreenSaverPrefs.h" #include "ScreenSaverThread.h" @@ -30,6 +31,7 @@ private: thread_id fThreadID; uint32 fBlankTime; + BMessageRunner *fRunner; void Shutdown(); };