6e16811e5e
Add the screensaver interface to the desktop-shell protocol file. Also add stubs for it in the compositor, and make wscreensaver to bind to the screensaver interface. Wscreensaver gets a new option --demo to retain the current behaviour as a regular wayland client. When a screensaver application starts, it should bind to the screensaver interface, enumerate all outputs, create a surface per output, and register those surfaces via screensaver::set_surface request. Then it continues with the usual animation loop, waiting for frame events. The compositor will decide, when the given screensaver surfaces are displayed. A screensaver application should respond to outputs coming and going away by creating and destroying surfaces. The compositor is supposed to activate a screensaver by exec'ing it, and stop the screensaver by killing the client process. Only one client may be bound to the screensaver interface at a time. If there already is a client, the compositor could either kill it first, or not exec a new one. Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com> |
||
---|---|---|
.. | ||
.gitignore | ||
compositor-drm.c | ||
compositor-openwfd.c | ||
compositor-wayland.c | ||
compositor-x11.c | ||
compositor.c | ||
compositor.h | ||
data-device.c | ||
evdev.c | ||
image-loader.c | ||
Makefile.am | ||
screenshooter.c | ||
shell.c | ||
switcher.c | ||
tablet-shell.c | ||
tty.c | ||
util.c | ||
xserver-launcher.c |