shell: handle multiple popups

This patch implements a popup stack. When the first popup is opened
the grab is started, and it is added to a list. Further popups will
be added to this list but the grab won't change. When a popup is
closed it is removed from the list and, if it is now empty, the grab
is ended.
A click outside the client area will send the popup_done event to
all the popups in the list, and the grab will end.
shell: set the popup grab button as pressed only if it actually is

This ensures the popup_grab.initial_up field isn't reset to 0
if the popup was not opened because of a mouse press but because
of moving the mouse with a popup already open. Not doing so will
make the first click outside the client area go ignored.
compositor-drm: ensure we run drm-backend using weston-launch

We do this by checking if launcher_sock != -1

This fixes https://bugs.freedesktop.org/show_bug.cgi?id=60926
compositor: Support notifying with absolute position too

With evdev input devices that generate absolute positions we need to provide
an infrastructure in the compositor for supporting those.

Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=61997
compositor-x11: Fix relative motion reporting for multiple outputs
evdev-touchpad: Disable tap FSM by default on touchpads with button pads

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
Added handler for SIGABRT
compositor: Remove unused wl_pointer variable

Using move_pointer() in notify_pointer_focus() left the wl_pointer variable
unused.
build: Make the X11 compositor explicitely depend on xcb-shm

Otherwise, it means the X11 compositor depends on another library to
pull xcb-shm (cairo?), which is not always the case. Here I end up with:

[01:54:38.970] Failed to load module:
$prefix/lib/weston/x11-backend.so: undefined symbol: xcb_shm_id
sdk: be C++ friendly

This renames the weston_surface's private member to configure_private
and externs "C" the headers of the SDK.
gitignore: Ignore test-driver

Automake (1.12 here) parallel-tests installs a test-driver file, another
file to add to .gitignore.

While at it, remove the duplicate cscope.out entry and add TAGS (the
result of automake's "make tag")
compositor: add WESTON_COMPOSITOR_OFFSCREEN state

This state is used when the user switches the vt. It turns of rendering
and frame events, but doesn't set the DPMS state to off.

As a part of this change, also turn off the idle timer when entering
the SLEEPING or OFFSCREEN states, which fixes
https://bugs.freedesktop.org/show_bug.cgi?id=61910 (rpi backend
untested).
RDP compositor take 6

This patch is the 6th version of the FreeRDP based compositor.
Changes from last version:
 * use pixman_image_get_stride() when appropriate
 * always realloc

Reviewed-by: Jason Ekstrand <jason@jlekstrand.net>
compositor: add information about the fbdev backend to --help output
window: don't execute the selected menu item when getting popup_done
compositor: Use wl_pointer_set_current to cleanup after surface destruction

This API call handles setting the current surface on the wl_pointer and also
maintaining a destroy notification to monitor that surface for destruction.

This is part of the fix for: https://bugzilla.gnome.org/show_bug.cgi?id=696946
autotools: Add a libunwind configure switch

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
Fix compiler warnings

This prevents compiler warnings when using libpng 1.6 and GCC 4.8
compositor-drm: Allow running without launcher if effective UID is 0

This lets us keep running weston as root or setuid root.
Make backends always specify output repaint time

Most backends relies on gettimeofday(2) for output repaint timestamps
but this is not a requirement. Before this patch repaints coming from
idle_repaint() always used gettimeofday(2) for timestamps. For backends
not using that time source this could cause large jumps between
timestamps.

To fix this, timestamps needs to always come from the backend. This
means that the backend needs to always be responsible of starting the
repaint loop in case that the repaint cannot start immediately.

The drm backend implementation is from the patch by Ander Conselvan de
Oliveira found here:
http://lists.freedesktop.org/archives/wayland-devel/2013-February/007393.html

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>