Fix crash of test client

No wl_data_device_manager created in Mock compositor

Change-Id: If80f71165c28678f296bc18f0fea572dcb1a2f77
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Destroy the QScreen when its wl_output is removed

Change-Id: I4532d05cca44c88fe38c14eacbe90c190f272b2c
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
DataOffer not invalidated when client loses keyboard focus

The data_offer object should be invalidated when client loses keyboard focus.
Otherwise in following scenario, it will become zombie object: start app1 ->
copy text -> start app2 -> paste text -> close app1 -> paste again in app2 ->
seg fault in qtwayland.

The root cause is that when app2 takes focus the first time, data_device.data_offer
event was sent to it from DataDevice::setFocus. When app1 is closed, the data source
reference in data offer becomes invalid. so when trying to paste again in app2,
segmentation faults

Change-Id: I16a584e80fddaadd269b00cdf39eb405dd95b622
Task-number: QTBUG-41005
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Fix warning from qmake in the compositor headers

Change-Id: I3a23a8af2f3e7f5ac5f1fcabc8e678de39558f61
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Avoid unused parameter

Change-Id: Icfc7e4e2d6cd030fc0509ad4724b577f88c4e850
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Advertise new screens created after startup

Change-Id: I995f49e52ec888830b478f1e1f9cc82132776725
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Fix window decorations for GL apps

You cannot have rounded corners with an alpha-less config. To make OpenGL
applications appearing with the correct decoration, alpha must be enabled.

With this fix the OpenGL apps' decoration will now look identical to the
SHM apps'.

Change-Id: I24431ddab63146f7f697c85277f00f41e5c55e85
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Reviewed-by: Robin Burchell <robin.burchell@viroteck.net>
Allow activating decoration buttons with touch

Task-number: QTBUG-41142
Change-Id: Ifad600d375d3b5ba197c384ece54a93db9aa0d2d
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Avoid useless handleTouchEvent call

The call when allReleased is true is a historical artifact: Originally
the call was necessary to generate a TouchEnd. Later the determination
of the event type got moved to QWindowSystemInterface. As a result the
call is completely superfluous since it will bail out immediately.

Task-number: QTBUG-36473
Change-Id: If1a270445a620e6f795912873c60fb1a05384964
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Silence warnings about keyboard grab and size hint propagation

These two unimplemented functions often result in showing warnings
from the default implementations. This is not quite ideal since the
warning is useless for users and pollutes the standard output (which
f.ex. Creator captures as-is)

Change-Id: Ic05ff1590ed351738f0390a94ed5203a05664d4a
Reviewed-by: Shawn Rutledge <shawn.rutledge@digia.com>
Fix QWaylandScreen geometry and physical size

The wl_output.geometry event carries the physical size of the output,
not the logical one. This happened to work only because the geometry
event was sent before the mode event, which carries the logical size.
Moreover, use the done event to send only one geometry change event
instead of one per advertized mode.

Change-Id: I5b09d56654aac149d90692bb5a3e050cc0d60cb6
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Add QWaylandOutput to support multiple outputs

Add a new QWaylandOutput class to support multiple outputs.

A window is no longer passed to QWaylandCompositor constructor
and all output related methods are removed, however one or more
outputs are required for hardware integration.

QWaylandCompositor returns a list of outputs and emits signals when
outputs are added or removed.

The QWaylandOutput constructor and destructor automatically manage
the list of outpus and emit signals.

QWaylandOutputs are created by compositor implementations after
QWaylandCompositor is instantiated.

Hardware integration is initialized when the first output
is created and it is deleted when no output is left.

Compositors are encouraged to inherit QWaylandOutput to support high
level concepts such as primary output.
They will also send wl_surface.enter and wl_surface.leave events
themselves when a surface view enters or leaves an output.

Each QWaylandOutput need a window for rendering.

Rename OutputGlobal to Output and Output to OutputResource.

Add support for physical size and available geometry.

Use better defaults for geometry and refreshRate from the QWindow
if available.

Change-Id: I742996571ddb78328f7bfa4f79b25a81995279e1
Done-with: Jan Arne Petersen <jan.petersen@kdab.com>
Merge branch '5.4' into maui

Conflicts:
	examples/qwindow-compositor/main.cpp
	examples/qwindow-compositor/qwindowcompositor.cpp
	examples/qwindow-compositor/qwindowcompositor.h
	src/compositor/wayland_wrapper/qwlcompositor.cpp
	src/compositor/wayland_wrapper/qwloutput.cpp
Fix hardware integration initialization order