variables are now inited correctly

works ok on R5


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@13986 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval
2005-08-19 13:08:15 +00:00
parent ef4279ea76
commit 7ac01f7eb9
2 changed files with 19 additions and 13 deletions
@@ -41,22 +41,28 @@ SSController::MessageReceived(BMessage *msg)
fFilter->CheckTime();
break;
case B_SOME_APP_LAUNCHED:
case B_SOME_APP_QUIT:
{
const char *signature;
if (msg->FindString("be:signature", &signature)==B_OK
&& strcmp(signature, SCREEN_BLANKER_SIG)==0)
fFilter->SetEnabled();
&& strcasecmp(signature, SCREEN_BLANKER_SIG)==0) {
fFilter->SetEnabled(msg->what == B_SOME_APP_LAUNCHED);
}
SERIAL_PRINT(("mime_sig %s\n", signature));
break;
}
default:
BHandler::MessageReceived(msg);
BLooper::MessageReceived(msg);
}
}
SSInputFilter::SSInputFilter()
: fCurrent(NONE),
: fLastEventTime(0),
fBlankTime(0),
fSnoozeTime(0),
fRtc(0),
fCurrent(NONE),
fEnabled(false),
fFrameNum(0),
fRunner(NULL) {
@@ -68,7 +74,7 @@ SSInputFilter::SSInputFilter()
BEntry entry(fPref.GetPath().Path());
entry.GetNodeRef(&fPrefNodeRef);
watch_node(&fPrefNodeRef, B_WATCH_ALL, NULL, fSSController);
be_roster->StartWatching(fSSController, B_REQUEST_LAUNCHED);
be_roster->StartWatching(fSSController);
}
@@ -87,8 +93,7 @@ SSInputFilter::Invoke()
if ((fKeep!=NONE && fCurrent == fKeep) || fEnabled || fPref.TimeFlags()!=1)
return; // If mouse is in this corner, never invoke.
SERIAL_PRINT(("we run screenblanker\n"));
if (be_roster->Launch("application/x-vnd.Be.screenblanker")==B_OK)
fEnabled = true;
be_roster->Launch(SCREEN_BLANKER_SIG);
}
@@ -96,13 +101,18 @@ void
SSInputFilter::ReloadSettings()
{
CALLED();
fPref.LoadSettings();
if (!fPref.LoadSettings()) {
SERIAL_PRINT(("preferences loading failed: going to defaults\n"));
}
fBlank = fPref.GetBlankCorner();
fKeep = fPref.GetNeverBlankCorner();
fBlankTime = fSnoozeTime = fPref.BlankTime();
CheckTime();
delete fRunner;
fRunner = new BMessageRunner(BMessenger(NULL, fSSController), new BMessage(SS_CHECK_TIME), fSnoozeTime, -1);
if (fRunner->InitCheck() != B_OK) {
SERIAL_PRINT(("fRunner init failed\n"));
}
}
@@ -114,7 +124,6 @@ SSInputFilter::Banish()
return;
BMessenger ssApp (SCREEN_BLANKER_SIG,-1,NULL); // Don't care if it fails
ssApp.SendMessage(B_QUIT_REQUESTED);
fEnabled = false;
}
@@ -35,20 +35,17 @@ public:
void CheckTime();
uint32 GetSnoozeTime(void) {return fSnoozeTime;}
void ReloadSettings();
void SetEnabled() { fEnabled = true; }
void SetEnabled(bool enabled) { fEnabled = enabled; }
private:
//static int32 ThreadFunc(void *);
bigtime_t fLastEventTime, fBlankTime, fSnoozeTime, fRtc;
arrowDirection fBlank, fKeep, fCurrent;
bool fEnabled;
BRect fTopLeft, fTopRight, fBottomLeft, fBottomRight;
ScreenSaverPrefs fPref;
//thread_id fWatcher;
uint32 fFrameNum; // Used so that we don't update the screen coord's so often
// Ideally, we would get a message when the screen changes. R5 doesn't do this.
SSController *fSSController;
node_ref fPrefNodeRef;
//sem_id fSnoozeSem;
BMessageRunner *fRunner;
void UpdateRectangles();