chipsets exhibit an interesting situation. It appears as though
in certain conditions a single monitor machine actually reports
itself as having three monitors. Normally the monitor that
contains the primary window (coord 0,0) is on monitor 0, but on
these machines coord 0,0 is actually on monitor 2. This led to the
screensaver not properly exiting when keyboard and/or mouse activity
was detected. Now when we detect that keyboard and/or mouse activity
has happened we send the WM_INTERRUPTSAVER event to all windows
on all monitors.
clientscr/
screensaver_win.cpp, .h
svn path=/trunk/boinc/; revision=17728
which of those files to include
- Modified MAC address check to work on some non-Linux unixes.
(mac_address.cpp)
- Added suggested change to "already attached to project" checking.
(ProjectInfoPage.cpp)
- changed includes of standard c header files to their c++ equivalents
(i.e. replaced <stdio.h> with <cstdio>) for namespace protection.
- replaced "using namespace std;" with more explicit "using std::function" in
several files.
- Fixed bug in checking whether the os is OS/2 and added conditional OS_OS2
to the build environment. (boinc_platform.m4,configure.ac)
- Changed build environment to not use -nostandardlibs unless we are using
G++ and static linkage is specified. (configure.ac)
- Added makefiles and package building files for solaris CSW package manager.
- Fixed bug with attempting to find login name using logname. (configure.ac)
- Added ifdef HAVE_* protection around some include files commonly found in
sys.
- Added support for unified binary for x86_64/i686-pc-solaris.
(cs_platforms.cpp)
- generate_host_cpid() now uses MAC address on non-linux unix.
(hostinfo_network.cpp)
- Macro BOINC_SET_COMPILE_FLAGS now doesn't check gcc only flags on non-gcc
compilers. (boinc_set_compile_flags.m4)
- Library compiles no longer depend upon the library extension or require
the library to be prefixed with lib.
- More fixes for fcgi builds.
- Added declaration of "struct ether_addr" and ether_ntoa(). Have not yet
implemented ether_ntoa() for machines that don't have it, or where it is
buggy. (unix_util.h)
- Added FCGI::perror() which calls FCGI_perror(). (boinc_fcgi.{h,cpp})
- Fixed library Makefiles so that all required headers get installed.
svn path=/trunk/boinc/; revision=17388
- SCR: Shuffle headers around so that it'll build on both Windows and
Mac without having to put in duplicate entries.
clientscr/
screensaver.cpp
svn path=/trunk/boinc/; revision=17370
It is not handled by the default screensaver app.
- WINSCR: Clean-up some of the thread cleanup logic.
clientscr/
screensaver_win.cpp
svn path=/trunk/boinc/; revision=17349
panel applet
- WINSCR: Get rid of the 'Up to 5 second wait' for the data thread
to terminate. Force terminate the thread and clean up the
graphics app in a clean-up routine. Forcing the user to wait
when they return to the system isn't a good idea.
- WINSCR: Fix screensaver issue where the screensaver locks up
when the graphics application deadlocks for one reason or
another.
Create two new threads:
1. Monitor system for keyboard and mouse events.
2. Shuffle window z-order positions if needed.
The keyboard/mouse event monitor is isolated from either
the core client getting stuck in a loop and not returning
the results of an RPC or the window shuffling code which
can get stuck if the graphics application dead locks.
The window shuffle code is isolated due to the
BroadcastSystemMessage() API using something akin to
SendMessage() which waits for a return value from the
target windows winproc. If a graphics application
deadlocks for one reason or another it'll cause
the thread to stall. This isn't terminal and so we
just wait for the next time the data thread chooses
a new application and terminates the old one which
will cause the thread to resume.
This should resolve all outstanding issues with the
screensaver not exiting when the mouse or keyboard
is used.
clientscr/
boinc_ss.rc
screensaver.cpp
screensaver_win.cpp, .h
svn path=/trunk/boinc/; revision=17336