Bug 23119 - "xdg-screensaver suspend" Can Cause Screen Burn-in When Display Never Sleeps Anymore
Summary: "xdg-screensaver suspend" Can Cause Screen Burn-in When Display Never Sleeps ...
Alias: None
Product: Portland
Classification: Unclassified
Component: xdg-utils (show other bugs)
Version: 1.0
Hardware: x86 (IA32) Linux (All)
: high major
Assignee: Portland Bugs
QA Contact:
Depends on:
Reported: 2009-08-03 13:15 UTC by Daniel Yek
Modified: 2019-02-16 13:29 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Description Daniel Yek 2009-08-03 13:15:52 UTC
"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!

(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.
Comment 1 GitLab Migration User 2019-02-16 13:29:47 UTC
-- GitLab Migration Automatic Message --

This bug has been migrated to freedesktop.org's GitLab instance and has been closed from further activity.

You can subscribe and participate further through the new bug through this link to our GitLab instance: https://gitlab.freedesktop.org/xdg/xdg-utils/issues/34.

Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.