Find a file
Pekka Paalanen 50b6747903 compositor: send error for surface role resets
With the more accurate definition of wl_surface roles in Wayland,
enforce the restriction: a role is always set permanently, and
attempting to change it is a protocol error.

This patch is based on Jasper's patch:
http://lists.freedesktop.org/archives/wayland-devel/2014-August/016811.html

The difference in this patch compared to his are:

- send role errors on the interface whose request triggers it, not on
  wl_surface

- an interface could have several requests assigning different roles,
  cannot use wl_interface as the unique key; use an arbitary string
  instead

- ensure in window-manager.c that create_shell_surface() ->
  create_common_surface() is never called with surface->configure set,
  to avoid compositor abort

- use wl_resource_post_no_memory() where appropriate instead of
  hand-rolling it with wl_resource_post_error()

Ideally we would not add weston_surface::role_name field, but use
weston_surface::configure. At the moment this is not possible though,
because at least shell.c uses several different roles with the same
configure function. Drag'n'drop uses two configure functions for the
same role. The configure hook is also reset in several places,
which is not good for role tracking.

This patch overlooks the wl_surface roles assigned in privileged
extensions: screensaver, panel, background, lock, input panel.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-by: Jasper St. Pierre <jstpierre@mecheye.net>
2014-10-08 13:16:30 +03:00
clients clients: add presentation-shm demo 2014-09-30 13:02:20 +03:00
data build: Move data/Makefile.am into Makefile.am 2014-01-31 23:49:39 -08:00
desktop-shell compositor: send error for surface role resets 2014-10-08 13:16:30 +03:00
fullscreen-shell shell: fix weston_output_mode_switch() usage 2014-09-22 14:38:13 +03:00
m4 weston-build: Fix aclocal error during autogen.sh 2014-06-21 10:33:21 -07:00
man compositor: add an option to set the default numlock value 2014-09-03 15:31:31 +03:00
protocol protocol: add role error code to xdg_shell 2014-10-08 13:15:45 +03:00
shared clients: Maximize window when double touch on title bar 2014-09-22 10:19:44 +03:00
src compositor: send error for surface role resets 2014-10-08 13:16:30 +03:00
tests tests: presentation test, simple 2014-09-30 13:02:20 +03:00
wcap wcap: Check for mmap and malloc return value in wcap decode module 2014-05-06 15:21:27 -07:00
xwayland compositor: send error for surface role resets 2014-10-08 13:16:30 +03:00
.gitignore clients: add presentation-shm demo 2014-09-30 13:02:20 +03:00
autogen.sh Update autotools configuration 2010-11-06 21:04:03 -04:00
configure.ac configure.ac: bump version to 1.6.90 2014-09-22 10:02:17 +03:00
COPYING Add COPYING 2012-04-25 10:17:42 -04:00
Makefile.am clients: add presentation-shm demo 2014-09-30 13:02:20 +03:00
notes.txt Add informal notes file 2012-10-25 15:00:42 -04:00
README README: Fix typo; add link to testing docs 2014-02-05 17:20:24 -08:00
releasing.txt Add releasing.txt to describe the release steps and other bits of process 2014-05-23 10:13:59 -07:00
weston.ini.in libinput: Add tap configuration to weston.ini 2014-08-15 15:33:55 +03: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 building
weston and its dependencies.

The test suite can be invoked via `make check`; see
http://wayland.freedesktop.org/testing.html for additional details.