Commit Graph
6 Commits
Author SHA1 Message Date
Puck Meerburg e4e2ce4ce3 When testing screensaver, don't have mouse move exit the screen saver.
Fixes #7463

Signed-off-by: Adrien Destugues <[email protected]>
2014-12-10 21:18:30 +01:00
John Scipione d34a680c04 Screen Saver: fix race condition
Start the screensaver in the window thread instead of the runner
thread so that there is no lock contention for the window lock in
the runner thread when the saver starts.

The view that gets drawn into is assumed to have been prepared before
being passed to the runner thread, and this assumption has been made
true for the screensaver preview and screen_blanker apps.

Eliminate fHasStarted and the corresponding HasStarted() method in
ScreenSaverRunner as they are no longer needed.

Drawing still happens in the runner thread, and still needs to lock
the window thread potentially causing contention, yet, there
is a timeout here so the contention won't freeze the screensaver window,
only delay drawing the screensaver.

Drawing could be moved to the window thread via message passing to avoid
lock contention with the window but this would defeat a big part of the
purpose of having a separate rendering thread.

This fixes #10125 and #4260
2013-11-14 23:30:26 -05:00
John Scipione e22c01af03 Screen Saver: style fixes 2013-11-14 23:30:10 -05:00
Ryan Leavengood d39c5354b8 - Use PostMessage instead of a BMessenger to send a message to the window from
the app.

- Use the new "_fake" parameter to detect the initial mouse moved sent by
	app_server instead of a BMessageRunner and delay.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29493 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-13 17:22:54 +00:00
Ryan Leavengood cb6a084f20 Fixed a bug in the screen saver code that could cause someone to get locked out
of their machine: if the password check is turned on, and the password window
is shown but times out (when the screen saver starts again after the standard
delay), the input filter never knew about this and would never try to end the
screen saver again.

The solution is to take the logic for turning off the screen saver out of the
input filter and put it in the screen blanker itself.

Also while working in the input filter I removed some debugging and a TODO that
I think cannot be fixed.

In the screen_blanker the exit after loading the settings file was removed
since the default settings now work for the screen_blanker.

Plus obviously code was added to handle exit upon user input as well as the
timing out of the password window.

If anyone has a better solution for the 250ms timeout to ignore initial mouse
moves, let me know.

Also I think the new calls should be nothrow, but I am not sure what the rule
is for that.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@29488 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-03-13 04:51:52 +00:00
Axel Dörfler cbb7d5038a * The screen saver window is now a kWindowScreenFeel, and thus should always be
in front of all other windows.
* Added TODO items where the code is strange or messy.
* Big cleanup (renamed files and variables like "fPww" to something more
  meaningful).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17126 a95241bf-73f2-0310-859d-f6bbb57e9c96
2006-04-13 15:46:06 +00:00