westoy: Fix the version number we request for wl_seat

If the compositor supports a lower version, like version 2, we need
to request that instead of version 3.
evdev: Synchronize keys only if seat is keyboard capable

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
filter: Remove unused variable

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Add calls to wl_shm_buffer_begin/end_access

This wraps all accesses to an SHM buffer between wl_shm_buffer_begin
and end so that wayland-shm can install a handler for SIGBUS and catch
attempts to pass the compositor a buffer that is too small.
westoy: Remove window_touch_move

It seems to be the same as window_move, except it ignores the passed
in serial (???) and instead just uses the one of the display.
westoy: Remove unused support for window parents

It seems that this was only used by the popup menu infrastructure,
which can handle this all on its own. Implementing e.g. transients
in the future can be done with a simple xdg_shell_set_transient_for.
westoy: Remove some accessors for wl_shell / wl_shell_surface

We want to remove support for these deprecated interfaces. Since
nothing is using them, this is a simple change.
compositor: Schedule a repaint in weston_view_damage_below()

We always want a repaint if the view was damaged or changed.  In
particular, we want weston_view_update_transform() to schedule a
repaint for the old and new position if we change the view transform.
weston-test: Always update transform when moving surface

weston_view_update_transform() will post damage in the old and new
positions of the view and thus make sure we always repaint properly.
In particular, in bug 66133, the test suite moves the surface off
any output and weston_surface_schedule_repaint() in commit fails to
do anything, since the surface is not on any output.

After changing view geometry, we have to either call
weston_compositor_schedule_repaint(), which is what shell.c typically
does, though that repaints all outputs, or call
weston_view_update_transform() to force update the transformation
and queue repaints on affected outputs.

https://bugs.freedesktop.org/show_bug.cgi?id=66133
xdg_shell: Adding a new shell protocol.

xdg_shell is a protocol aimed to substitute wl_shell in the long term,
but will not be part of the wayland core protocol. It starts as a
non-stable API, aimed to be used as a development place at first, and
once features are defined as required by several desktop shells, we can
finally make it stable.

It provides mainly two new interfaces: xdg_surface and xdg_popup.

The xdg_surface interface implements a desktop-style window, that can be
moved, resized, maximized, etc. It provides a request for creating
child/parent relationship, called xdg_surface.set_transient_for.

The xdg_popup interface implements a desktop-style popup/menu. A
xdg_popup is always transient for another surface, and also has implicit
grab.
xdg-shell: Updating move and resize requests, and poupup_done event.

Remove cursor_surface parameter from move and resize requests, and add a
serial parameter to popup_done event.
xdg-shell: Update description to match request names.

There's no maximized_unset, minimized_unset and fullscreen_unset. Use
unset_maximized and unset_fullscreen instead.
xdg-shell: Update protocol name: xdg_surface -> xdg_shell.
shell: Remove SHELL_SURFACE_FULLSCREEN and SHELL_SURFACE_MAXIMIZED.

These surface types don't exist anymore inside weston desktop shell
implementation. They are just exposed as wl_shell surface types, but
internally the implementation is done with surface states.

The previous
behavior (setting a surface type unsets another one) still happens when
using wl_shell. This change is mainly done as a refactory to allow
xdg-shell to use the same code.
weston: Add xdg-shell to the build.
xdg-shell: Implement part of the interface.

Basic requests are implemented, enough to get a surface displayed.
xdg-shell: Implementing maximized and fullscreen states.