configure.ac: Indicate headless compositor presence in config.h

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
compositor-headless: allow rendering with pixman

Allow the headless backend to render into an off screen buffer with pixman.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
compositor-headless: add support for transforms set on command line

We now allow --transform with the headless compositor, however it still
doesn't parse anything out of weston.ini

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
compositor: Document options for headless compositor

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>

[Pekka: s/Wayland surface/memory surface/, and say default renderer.]
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
tests: Allow tests to use customized command line parameters

Tests will now return the extra command line parameters they need
when run with --params

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
input: don't run the key bindings on focus in

When getting the focus we get the list of pressed keys, but we are
not supposed to run the key binding on them.

Reviewed-by: Daniel Stone <daniel@fooishbar.org>
desktop-shell: don't crash input-panel if no kbd focus

If a keyboard exists but it has no current focus, yet something asks the
input-panel to come up, we would crash here. Check that there is a focus
before attempting to use it.

Maybe there should not even exist a case where input-panel tries to come
up without a keyboard focus, but I am not sure there is no race where it
could happen.

In any case, this fix was brought up by the ivi-shell work, where I
suppose you can somehow hit it.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Cc: Tanibata, Nobuhiko <ntanibata@jp.adit-jv.com>
compositor: introduce struct weston_backend

This is a preliminary change for libweston, with no functional modifications.
Separate the backends and the core weston_compositor struct, by creating
the weston_compositor in the main(), and having the various backends extend
the weston_backend struct, an instance of which is returned by the backend
entry point.
don't use weston_config in the backends code

This is to make them usable by future libweston users, since they will
not use weston_config.
weston_config is still used in the backends entry points, which will
later on live in their own files.
compositor: remove the weston_config field from weston_compositor

Instead of the central weston_config pointer we now store it in some
module-specific pointers. This way we can remove them one by one.
compositor: add API to manage compositor instances
compositor: move the main() to a new weston.c file
build a libweston.so used by the weston binary
libweston: allow compositors to define the logging behavior
libweston: move the child process launching and monitoring to weston

libweston still internally uses those functions, so it is not linkable
yet by other compositors.
libweston: handle the screenshoot and record bindings in weston.c

Move the code launching the screenshooter client and implementing
the screenshot protocol out of libweston, and make screenshooter.c
a generic way to hook screenshoot protocols into weston.
text: build the text-backend in weston

It uses the weston_client_launch API, which is not available in
libweston.
libweston: expose the X11 backend's API
libweston: expose the drm backend's API
libweston: make a shared library for compositor launchers