[Portland-bugs] [Bug 23119] New: "xdg-screensaver suspend" Can Cause Screen Burn-in When Display Never Sleeps Anymore

bugzilla-daemon at freedesktop.org bugzilla-daemon at freedesktop.org
Mon Aug 3 13:15:53 PDT 2009


http://bugs.freedesktop.org/show_bug.cgi?id=23119

           Summary: "xdg-screensaver suspend" Can Cause Screen Burn-in When
                    Display Never Sleeps Anymore
           Product: Portland
           Version: 1.0
          Platform: x86 (IA32)
        OS/Version: Linux (All)
            Status: NEW
          Severity: major
          Priority: high
         Component: xdg-utils
        AssignedTo: portland-bugs at lists.freedesktop.org
        ReportedBy: dyek at real.com


"xdg-screensaver suspend" Can Cause Screen Burn-in When Display Never Sleeps
Anymore After An Application Used "xdg-screensaver suspend" And was Then
Killed.

"xdg-screensaver suspend" was designed to stop when the window it monitored
vanished, and thus allowing the ScreenSaver to resume and allowing the
monitor/display to go back to sleep when the session became idle.

However, monitor-window-and-quit functionality is not working, causing displays
to never sleep if an application using "xdg-screensaver suspend" was killed.

The effect of this bug is, potentially, very bad, so I'm hoping that this issue
can be addressed.

I don't know how this bug happened, but I can speculate a few possibilities:

(1) The "monitor-window-and-quit" functionality was initially working during
the initial development, but forking to background xdg-screensaver process
feature was added later (pure speculation as I don't know have code history)
and since now the xdg-screensaver is no longer a child process, it is not
killed when the application exited.

(2) "xprop -id <window id> -spy" used to receive window event and quitted when
the monitored window vanished. xprop is no longer subscribing to the window
event.
If this is the case, maybe xprop.c's:
  XSelectInput(dpy, target_win, PropertyChangeMask);
needs to be changed to:
  XSelectInput(dpy, target_win, StructureNotifyMask | PropertyChangeMask);
for it to be notified about the window deletion!

REPRO. STEPS:
(Just vague repro. steps for now.)

1. Create a HelloWorld GUI application.
2. Calls "xdg-screensaver suspend <The App.'s Main Window ID>" from the
application.
3. Kill the application.
4. Observe that xdg-screensaver and xprop don't quit and the display can suffer
burn-in.


-- 
Configure bugmail: http://bugs.freedesktop.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the assignee for the bug.


More information about the Portland-bugs mailing list