← Back to team overview

mythbuntu-bugs team mailing list archive

[Bug 428884] Re: gnome-screensaver-command --poke no longer inhibits screensaver

 

Yeah, the fix is probably in there as it was committed upstream a few
days ago. As gnome-screensaver is already fixed, this will work again
once the Xorg patch lands in Ubuntu

-- 
gnome-screensaver-command --poke no longer inhibits screensaver
https://bugs.launchpad.net/bugs/428884
You received this bug notification because you are a member of Mythbuntu
Bug Team, which is subscribed to mythtv in ubuntu.

Status in GNOME Screensaver: Unknown
Status in Me TV, it's TV for me computer: In Progress
Status in VLC media player: Won't Fix
Status in X.Org X server: Fix Released
Status in “gnome-screensaver” package in Ubuntu: Fix Released
Status in “mplayer” package in Ubuntu: Invalid
Status in “mythtv” package in Ubuntu: Won't Fix
Status in “vlc” package in Ubuntu: Invalid
Status in “xorg” package in Ubuntu: Triaged
Status in “gnome-screensaver” source package in Karmic: Triaged
Status in “mplayer” source package in Karmic: Invalid
Status in “mythtv” source package in Karmic: Won't Fix
Status in “vlc” source package in Karmic: Invalid
Status in “xorg” source package in Karmic: New
Status in “gnome-screensaver” package in Debian: Confirmed

Bug description:
Binary package hint: vlc

In karmic , while playing videos , VLC does not inhibit screensaver.

This is a regression from the behavior in jaunty.

ProblemType: Bug
Architecture: i386
CheckboxSubmission: 417990aadff2335cd485c57bb06c8968
CheckboxSystem: 5484a8dd99f006173bd2ac53fa4837c2
Date: Sun Sep 13 19:58:49 2009
DistroRelease: Ubuntu 9.10
Package: vlc 1.0.1-2ubuntu1
ProcEnviron:
 LANGUAGE=en_US.UTF-8
 LANG=en_US.UTF-8
 SHELL=/bin/bash
ProcVersionSignature: Ubuntu 2.6.31-10.32-generic
SourcePackage: vlc
Uname: Linux 2.6.31-10-generic i686

**************************
**** SRU Justification ****
**************************

** Impact of bug **
The legacy inhibit API was removed from gnome-screensaver, as the gnome-session inhibit API is the preferred way to inhibit the screensaver. The legacy API required applications to "poll" the screensaver regularly to simulate user activity. The new API requires applications to register inhibitors, which will exist until they are removed, or the application exits.

xdg-screensaver is used by a lot of desktop-neutral applications including games and VLC, and this wraps the legacy gnome-screensaver API in GNOME. This means that screensaver inhibiting is currently broken in GNOME for any application which hasn't been ported to the new inhibit API.

** Description of changes **
The existing legacy API still exists in gnome-screensaver, but is currently just a stub. I've added code to this which resets the IDLETIME counter, by simulating fake keypresses using XTEST. The code is already used in gnome-session and totem, and this method of resetting IDLETIME is also used in other applications.

Resetting IDLETIME will prevent gnome-session from setting the session idle (which prevents the screensaver from activating), and will also prevent gnome-power-manager from dimming the display.

** Regression potential **
Minimal. The additional functionality is quite self-contained, and the existing interface doesn't work at all anyway. The chosen method of resetting IDLETIME is already used.

** TEST CASE **
 Using the following versions of gnome-screensaver in turn, perform the steps detailed below.

PLEASE MAKE SURE that you run "killall gnome-screensaver && gnome-screensaver" after installing the new version, to ensure that you are testing the new version.

- 2.28.0-0ubuntu3.1 (karmic-security)
- 2.28.0-0ubuntu3.2 (karmic-proposed)

1) Open gnome-screensaver-preferences, set the timeout to 1 minute and check "Activate screensaver when computer is idle"
2) Create a script in your home folder called "gss-test.sh", and containing the following:

   #!/bin/sh

   while true; do
       gnome-screensaver-command --poke
       sleep 30
   done

3) Run the script (sh ~/gss-test.sh), and wait

With version 2.28.0-0ubuntu3.1 of gnome-screesaver, the screensaver will activate after 1 minute.
With version 2.28.0-0ubuntu3.2, the screensaver will not activate as long as the script is still running. If you run "gnome-power-manager --verbose" in a separate terminal, you will notice the following sequence of messages each time the IDLETIME counter is reset by gnome-screensaver, which you won't see with the old version:

TI:21:57:13	TH:0x177e890	FI:gpm-idle.c	FN:gpm_idle_idletime_reset_cb,394
 - idletime reset
TI:21:57:13	TH:0x177e890	FI:gpm-idle.c	FN:gpm_idle_evaluate,213
 - session_idle=0, session_inhibited=0, x_idle=0
TI:21:57:13	TH:0x177e890	FI:gpm-idle.c	FN:gpm_idle_set_mode,133
 - Doing a state transition: normal
TI:21:57:13	TH:0x177e890	FI:gpm-backlight.c	FN:gpm_backlight_notify_system_idle_changed,443
 - we have just been idle for 20.017084s
TI:21:57:13	TH:0x177e890	FI:gpm-backlight.c	FN:gpm_backlight_notify_system_idle_changed,468
 - changing powersave idle status to 0
TI:21:57:13	TH:0x177e890	FI:gpm-backlight.c	FN:gpm_backlight_brightness_evaluate_and_set,201
 - no dimming hardware
TI:21:57:13	TH:0x177e890	FI:gpm-idle.c	FN:gpm_idle_evaluate,238
 - X not idle


4) Exit the script by pressing CTRL+C in the terminal