Find a file
David Herrmann aedc7732eb logind: delay wakeup until DRM-device is resumed
The logind API was designed to allow any kind of devices and any number of
devices. It has no idea of "main DRM device" or similar. However, the
weston DRM backend was designed with a single DRM device as master.
Therefore, we wake it up unconditionally on session-wakeup. But this may
fail with logind as a session may be awake, but not all devices have been
resumed, yet.

Therefore, we change the weston-logind backend to deal with this case
correctly. Instead of waking up the compositor on session-wakeup, we wait
for the main DRM device to wake up. Once we get the event, we notify the
compositor.

For sleep, we reverse this logic. On *any* of the following events we
tell the compositor to go to sleep:
 - Session gets inactive
 - DRM device gets inactive
 - DRM device is removed
This guarantees, that weston is only active if *both*, the session and the
main DRM device are awake/active.

Note that we could actually rely solely on the DRM-device Pause/Resume
events from logind and drop all the Active-Prop-Changed handling. logind
guarantees proper ordering of both. However, in case we ever change weston
to support multiple GPUs, we need the per-device notification. Thus, keep
the code. This also makes weston more fail-safe in case logind fails to
send the PauseDevice event (for whatever reason..).
2013-12-03 12:57:01 -08:00
clients window: handle insufficient buffer space 2013-12-02 16:20:58 -08:00
data window.c: frame_button: Maximize, minimize, close, icon buttons in window frame 2012-05-10 16:19:33 -04:00
man Make the default desktop shell client configurable 2013-12-02 15:44:49 -08:00
protocol xdg_shell: Adding a new shell protocol. 2013-12-03 11:35:24 -08:00
shared os: use posix_fallocate in creating sharable buffers 2013-12-02 16:20:27 -08:00
src logind: delay wakeup until DRM-device is resumed 2013-12-03 12:57:01 -08:00
tests Remove the weston_view.geometry.width/height fields 2013-12-02 22:17:58 -08:00
wcap Add more missing config.h #includes 2013-08-26 14:59:14 -07:00
.gitignore Automatically generate weston.ini with the right paths 2013-11-27 22:49:31 -08:00
autogen.sh Update autotools configuration 2010-11-06 21:04:03 -04:00
configure.ac os: use posix_fallocate in creating sharable buffers 2013-12-02 16:20:27 -08:00
COPYING Add COPYING 2012-04-25 10:17:42 -04:00
Makefile.am Automatically generate weston.ini with the right paths 2013-11-27 22:49:31 -08:00
notes.txt Add informal notes file 2012-10-25 15:00:42 -04:00
README Flesh out README a bit, link to building instructions 2012-07-20 12:26:23 -04:00
wayland-scanner.mk autotools: Don't use wayland-scanner.m4 2013-08-20 11:15:19 -07:00
weston.ini.in Automatically generate weston.ini with the right paths 2013-11-27 22:49:31 -08:00

Weston

Weston is the reference implementation of a Wayland compositor, and a
useful compositor in its own right.  Weston has various backends that
lets it run on Linux kernel modesetting and evdev input as well as
under X11.  Weston ships with a few example clients, from simple
clients that demonstrate certain aspects of the protocol to more
complete clients and a simplistic toolkit.  There is also a quite
capable terminal emulator (weston-terminal) and an toy/example desktop
shell.  Finally, weston also provides integration with the Xorg server
and can pull X clients into the Wayland desktop and act as a X window
manager.

Refer to http://wayland.freedesktop.org/building.html for buiding
weston and its dependencies.