Ignore negative screen physical size

Weston can send in some cases a negative physical size in the wl_output.geometry
event. While it is not clear whether that is legal go the extra mile and catch
it.

Change-Id: Ie2fbab84e653ad77732a72b6ca61509eb7849895
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Don't send the wrong physical size to clients

A 0x0 size means the compositor doesn't know what the real size is.

Change-Id: I79cac0482839399d4a53e9556bb999592af555a5
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Add or remove popup grabber when the surface is mapped

When the surface is mapped add or remove the popup grab
as expected.

Change-Id: I807753393ef2753bc96c698f766523186ee88fd2
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Merge remote-tracking branch 'origin/5.4' into dev

Conflicts:
	src/compositor/wayland_wrapper/qwlcompositor.cpp

Change-Id: Ica26e33eb2b77ed5be0e84e8f4256d2e85abfaf5
Allow client side input device customization

Introduces QWaylandInputDeviceIntegration plugins to allow customization
of input device related behavior. The plugin can be activated via the
environment variable QT_WAYLAND_INPUTDEVICE_INTEGRATION

Change-Id: If5629737752afacb29161f51c1b7c6e171fb2758
Reviewed-by: Mikko Levonmaa <mikko.levonmaa@lge.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Support QWindowSystemInterface for Qt 5.3.x

API changed with Qt 5.4 but we want to build this code with Qt 5.3 too,
this if will select the right code.
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>