compositor-wayland: Respond to ping requests on outputs' shell surfaces

Otherwise one can't interact with it because of the busy cursor grab.
tablet-shell: Add actual actions for launcher.

The launcher before in tablet-shell just draw the icon and will
not activate a client. This patch makes the launcher as sub-widget
of homescreen, and implements enter/leave/button/redraw hanler to
do the actual client launching action.
Animate transitions for zoom focus point change.

Handle the transition when focus changes from text cursor to
mouse pointer or vice versa.
Move zoom code to its own file.
git-version: Use automake silent macro to make build prettier
compositor: Drop old wrapper for surface_to_global_float()
compositor: Track damage in surface-local coordinates

We transform the surface damage to global damage at weston_output_repaint()
time.  This way we don't touch the transform when it might not be valid
and in case of overlapping damage, we only copy pixels once for shm textures.
Don't segfault clients when cursor isn't found

If we can't find a cursor for whatever reason, don't crash the client in
pointer_surface_frame_callback.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
tablet-shell: Fix compilation warnings

Include unistd.h to get fork and execl prototypes, and remove
declarations of two unused variables.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Rename weston_compositor EGLDisplay member to egl_display

EGLDisplay is helpfully typedeffed as void *, which means that you won't
get conflicting-pointer-type warnings if you accidentally confuse it
with weston_compositor::wl_display.  Rename it to make it more clear
which display you're dealing with, and also rename compositor-wayland's
parent.display member to parent.wl_display.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Add minimum size for terminal

At the moment the terminal can a negativ size and resizing it can create
some artifacts.
switcher: Don't use compositor->surface_list

compositor->surface_list is only valid during weston_output_repaint() so
don't use it in the switcher code.
tablet-shell: Don't use compositor->surface_list
compositor: Don't export weston_compositor_repick()

Picking is tied into the repaint loop and shouldn't happen outside
weston_output_repaint(), so don't export weston_compositor_repick().
wcap: Make recorder debug code compile again
compositor: Track which plane a surface is on

We start tracking which hardware plane a surface is displayed on, which
lets us avoid generating damage when a hardware overlay/cursor is moved
around.
window: Plug leak of shm_surface_data on shm_suface_data_destroy()

This was causing a leak on every frame when using shm buffers.
compositor: Destroy EGLImage and texture when a NULL buffer is attached
compositor: Emit frame_signal from weston_output_do_read_pixels()

This is the point where we have just finished rendering the new scene
but before we swap it to the front buffer.  At this point, the
output->previous_damage region exactly corresponds to what was just
renders, as compared to previous frame.
screenshooter: Just use frame signal for screenshots too

We'll remove the odd do_read_pixels callback next.