GNOME Bugzilla – Bug 338889
GNOME screensaver should not activate when evince is in presentation mode
Last modified: 2006-12-18 11:20:44 UTC
That bug has been opened on https://launchpad.net/distros/ubuntu/+source/gnome-screensaver/+bug/33468 "Description of the problem: evince can be put into a presentation mode which is good but gnome-screensaver can kick in during such a presenatation which can be faintly embarassing. Steps to reproduce: 1. Go to System -> Preferences -> Scrensaver . 2. Set session is idle after: to 1 minute. 3. Click Close. 1. Start firefox and go to http://www.changethis.com/20.04CommunityGreens . 2. Click on Download this. 3. Once the first page of the PDF has opened up and gone fullscreen wait for 1 minute. Expected results: Screen to stay the same even after 1 minute. Actual result: Screen saver kicks in fading the screen and starting a screensaver. Additional information: This problem affects a couple of programs with presenation modes like firefox when you press F11 for presentation mode (see http://www.meyerweb.com/eric/tools/s5/ for web presenations) and openoffice's impress when it's in slideshow mode. I heard that gnome-screensaver would avoid blanking when wnck had a fullscreen hint... should I file this bug against the individual packages? ..."
I don't think it's evince bug, probably we should just wait for wnck implementation of correct behavior
Other applications like totem does it. If the screesaver is gnome-screensaver we can talk with the screensaver by using dbus. In addition, maybe we don't want to stop the screensaver in fullscreen mode but only in presentation mode.
I have a patch implementing exactly this behaviour on my local hard drive, but it is not good enough to commit yet. I'll keep you informed.
Code is in CVS now, please test ;) 2006-11-22 Wouter Bolsterlee <wbolster@cvs.gnome.org> * configure.ac: * cut-n-paste/Makefile.am: * cut-n-paste/totem-screensaver/.cvsignore * cut-n-paste/totem-screensaver/Makefile.am: * cut-n-paste/totem-screensaver/README: * cut-n-paste/totem-screensaver/totem-scrsaver.c: * cut-n-paste/totem-screensaver/totem-scrsaver.h: * shell/Makefile.am: * shell/ev-window.c: (ev_window_run_presentation), (ev_window_stop_presentation), (ev_window_cmd_help_about), (ev_window_init): Implemented screensaver enabling/disabling for presentation mode (not fullscreen mode). Code stolen from Totem (with some minor tweaks). Fixes bug #338889.
Note that I could change the API if you're interested in making the changes more generic.
That would be nice. I actually failed to work with separate dbus connection for screensaver and managed to add dbus connection argument to API. No idea how it's handled in totem: http://cvs.gnome.org/viewcvs/evince/cut-n-paste/totem-screensaver/totem-scrsaver.c?r1=1.2&r2=1.3
Perhaps different constructors would be a better solution: - screensaver_new_with_dbus_connection() if you already have dbus connection lying around - screensaver_new() if you don't have one
oh, and a screensaver_set_appliction_name (perhaps as a mandatory argument for all constructors)
Another thing: the API should have enable() and a enable_with_reason(str).