[PATCH weston v3 0/8] Implement screensaver/idle inhibition

Bryce Harrington bryce at osg.samsung.com
Thu Apr 7 23:44:15 UTC 2016


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



More information about the wayland-devel mailing list