This patchset implements screensaver inhibition for Weston (see separate wayland-protocols patch).
The first three patches set up some infrastructure adjustments that will be needed in the latter patches. This makes idle behavior tracked on a per-seat basis, so that shells can connect an inhibit on an active surface with the seat generating the input events for that surface. Surfaces gain parameters for tracking inhibition requests from clients, and tracking activity as defined by shells. The fourth patch integrates these bits to implement the core functionality of per-output idle management. Patches 5, 6, and 7 shift the shells to use the new functionality. Each shell can make it's own decision as to what 'active' means, but this just sets the assumption to "has the keyboard focus". Next come the actual client and server protocol implementation. With these, clients are able to specify inhibition and the server will honor it. The client patch includes an example implementation for the simple-shm client. The final patch adjusts how the fade-out animation works in desktop-shell. Instead of a single fade-out surface stretched across all outputs, separate fade-out surfaces are created and managed for each output. When the system idles, only outputs without inhibiting client surfaces are faded; if the client terminates while the system is still in idle mode, its outputs are then faded too. v2: + Fixed fade-out animation (see above) + Updated patchset for the protocol rename from screensaver-inhibit to idle-inhibit (see the separate wayland-protocol patch) v3: + Split keyboard focus assignment to separate routine from surface activation (as suggested by Giulio Camuffo) Bryce Harrington (8): compositor: Track idle as a per-seat property compositor: Track inhibition state in weston_surface compositor: If the output is inhibited, don't idle it off desktop-shell: Support tracking active surfaces fullscreen-shell: Support tracking active surfaces ivi-shell: Support tracking active surfaces Define the screensaver inhibitor client interface desktop-shell: Enable per-output fade animations Makefile.am | 13 ++- clients/simple-shm.c | 28 ++++- configure.ac | 2 + desktop-shell/shell.c | 172 +++++++++++++++++++------------ desktop-shell/shell.h | 14 +-- fullscreen-shell/fullscreen-shell.c | 52 ++++++++-- ivi-shell/ivi-shell.c | 14 ++- ivi-shell/ivi-shell.h | 2 + src/compositor.c | 199 ++++++++++++++++++++++++++++++++++-- src/compositor.h | 32 +++++- src/input.c | 54 +++------- tests/weston-test.c | 8 +- 12 files changed, 449 insertions(+), 141 deletions(-) -- 1.9.1 _______________________________________________ wayland-devel mailing list wayland-devel@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/wayland-devel