List of patches
Add more files to the ignore list
Introduce QWaylandSurfaceInterface

Wayland is designed to be easily extensible with new protocol,
unfortunately it currently isn't possible with QtCompositor.
A QtWayland compositor has two ends: the Wayland end and the shell/wm
end, which may be implemented in QML. These two ends communicate mainly
through the QWaylandSurface and the QWaylandSurfaceView classes, but the
Wayland end is currently unable to hook into custom protocol extensions.
This is the purpose of the new QWaylandSurfaceInterface class, and of
QWaylandSurfaceOp and its subclasses: based on the QEvent model,
QWaylandSurfaceOp has only a type member, and its type specific subclasses
have additional data if needed. A custom protocol implementation, such as
xdg_surface or my_fancy_surface, will use a QWaylandSurfaceInterface subclass
which will call its specific protocol functions when it gets the relative
operation requests from the parent surface.
The QWaylandShellSurface class is now redundant so it is removed.

Change-Id: I37a86157a251626215f57ce030c77a26bfd65126

Conflicts:
	src/compositor/wayland_wrapper/qwlshellsurface.cpp
	src/compositor/wayland_wrapper/qwlshellsurface_p.h
Add more API to change QWaylandSurface properties

The previous patch allows for QWaylandSurface to call into custom
protocol implementations, but the other way around is needed too.
Instead of adding many public setters to QWaylandSurface this
makes QWaylandSurfaceInterface the way to set them, through
protected functions. This avoids calling the setters from other code
paths, which would bring the server and client states of the same
surface out of sync.

Change-Id: I9836c38835f10f6e63007b13d27a62884065f837
Add a way to have out of source shell integrations

Some platforms (especially non-desktop ones) may use a custom
Wayland shell extension, more tailored to the form factor than
the generic and desktoppy wl_shell or xdg_shell. Instead of stuffing
N protocol implementations in the QPA plugin use a plugin architecture
to allow them to live out of tree.
When creating a shell surface the QT_WAYLAND_SHELL_INTEGRATION env
variable will be checked, and if it points to a valid plugin that
will be used to create the shell surface, falling back to wl_shell
or xdg_shell if no plugin is specified.

Change-Id: I05019174bb915199dd726f5fdcc0385ef846e8de
Give a name to the event handling thread

Change-Id: I5c6073bc1908e54bc5ae50d4b6b6044974f1ad60
Add transient parent and offset to QWaylandSurface

Compositors now know more about transient surfaces.
With the parent and offset information, compositors can place transient
surfaces relative to their parent.

Change-Id: I73e08aad7bb1d8a7d40b2006208eb48e2a1a8455

Conflicts:
	src/compositor/wayland_wrapper/qwlshellsurface.cpp
Make sure to have a hardware integration when creating windows

We need to do a full roundtrip and wait for the qt_hardware_integration
global before returning from QWaylandDisplay constructor. Waiting
for the screen is not enough, since there is no guarantee it will come
after the hardware integration global.

Change-Id: I34cb50b830632db7e5d5c7a502eeef778599b267
Add support for setMask to set input region

Also fix input region handling in compositor.

This is 69976 rebased on top of dev by Pier Luigi Fiorini.