Automatically generate weston.ini with the right paths

Previously weston.ini had hardcoded paths for the weston-* clients in
/usr/bin and /usr/libexec. This was a bit annoying when testing Weston
because you wouldn't usually install those in the system prefix. This
patch adds a make rule to automatically generate weston.ini from a
template file with some replacement markers for the paths so that they
can have the right prefix.
exposay: provide a cancel func to the ptr grab iface

Fixes a crash when cancel is called while exposay is in progress.
rpi: avoid vc_dispmanx_set_wl_buffer_in_use without EGL

The symbol is needed only for the EGL buffer path. If --disable-egl is
given to ./configure, there is no need for it, so fix it to actually not
look for that symbol needlessly.

This should fix the runtime error:

	Failed to load module: .../rpi-backend.so: undefined symbol:
	vc_dispmanx_set_wl_buffer_in_use

when you use --disable-egl and do not have a recent enough
libraspberrypi package (/opt/vc, a.k.a userland.git) that would provide
vc_dispmanx_set_wl_buffer_in_use. Apparently no released version of
userland yet provides this.

The calls are organized into two helper functions to avoid a boolean
argument, and put the #ifdefs away from the main parts of the code.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Cc: Tomeu Vizoso <tomeu@tomeuvizoso.net>
input: don't run modifier bindings when the kbd is grabbed

We don't want bindings to be run while the keyboard is grabbed.
Otherwise the binding handler may grab the keyboard too, making
the old grab go away without even being cancelled.
exposay: properly go away when the modifier is pressed

We no longer receive an exposay_binding() call while exposay
is in-flight as we have grabbed the keyboard, so we need to
listen on the modifiers callback for the modifier press and
release.
Remove dependency on <GLES2/gl2.h> by replacing GLfloat with float
gl-renderer: Fix support for Y_XUXV buffers

Due to a copy and paste error, the pointer to the vertex shader source
was NULL and the program failed to link.
compositor-x11: Allow r5g6b5 visuals for X11 backend SHM

The support is already present in the pixman renderer, so we can just
check and use it.
Do not set output->current_mode in compositor.c

The field is already set - correctly - in the backend switch_mode.
setting output->current_mode to mode in compositor.c leads to bugs,
since mode can be freed by the shell.
For example, the shell allocates it on the stack for
WL_SHELL_SURFACE_FULLSCREEN_METHOD_DRIVER

Signed-off-by: Axel Davy <axel.davy@ens.fr>
compositor: gather buffer_transform and _scale into a struct

Gather the variables affecting the coordinate transformations between
buffer and local coordinates into a new struct weston_buffer_viewport.

This will be more useful later, when the crop & scale extension is
implemented.
compositor: do not recompute size on pointer_set_cursor

This removes the calls to weston_surface_buffer_width/height() from
input.c, which are the last external calls to them.

Instead, use the cached values from weston_surface::width,height. These
have already been set by weston_surface_commit(), because that is the
only way a weston_surface can get a buffer.
compositor: merge surface size from buffer size funcs

Replace the two functions getting the intended surface dimensions from
the surface's buffer and buffer transformation parameters by a single
function that just set the surface size according to all the buffer
state.

The old functions were always called in pairs, and always assigned to
the surface dimension variables.

This function also deals with a NULL buffer by setting the dimensions to
zero, just like the callers used to do.

The new function has no users outside this source file, so do not export
it. This basically unexports the old functions.
rpi: Support opaque regions

This is needed for XWayland surfaces with alpha channel, as X will be
sending crap in there that should be discarded.

This is currently done with a copy in the compositor, while we wait for
support in the VideoCore side.
src/shell.c: set black_surface->width and height

full screen black_surface doesn't have associated wl_buffer, so
black_surface->width and height can't get value through
weston_surface_commit(). then weston_surface_damage(black_surface)
will be wrong in shell_stack_fullscreen(), the result is that we
can't see a full screen view whe APP window's size isn't equal to
output's size like running weston-gears

Signed-off-by: Xiong Zhang <xiong.y.zhang@intel.com>
shell: Reorganise set/unset methods for fullscreen/maximize/popup/transient

Move them to be next to each other, and standardise the naming scheme so
they’re more greppable. This should make maintenance easier.
shell: Add missing cases to switch statements for surface types

This fixes a load of GCC warnings when compiling with -Wswitch-enum
-Wswitch-default, and makes it clearer that those cases have been
thought about explicitly when writing the code, rather than just being
forgotten.
shell: Add missing cases to switch statements for animations and fading

This fixes two GCC warnings when compiling with -Wswitch-enum
-Wswitch-default, and makes it clearer that those cases have been
thought about explicitly when writing the code, rather than just being
forgotten.
clients: Add window_is_transient() helper to the toy toolkit window
clients: Add a new weston-stacking demo

This allows creation of a variety of window types, for the purposes of
testing window ordering and stacking in Weston.
shell: Factor out common code to set a shsurf’s output