Remove deprecated method in brcm_egl plugin

QPlatformIntegrationPlugin::keys() was removed.
This fixes brcm_egl build.

Change-Id: I62af15a340a63794e6c6980ac6d72138d1cd60c8
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Give a name to the event handling thread

Change-Id: I5c6073bc1908e54bc5ae50d4b6b6044974f1ad60
Reviewed-by: Robin Burchell <robin+qt@viroteck.net>
Fix build with nogl

Change-Id: I1a70cfdbd450c94759f81d4328d821843541c063
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Do not send auto repeat key events to the clients

Change-Id: Icf1cd7211cb470115c9ce5e0ad5180dbb0ce28b9
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Auto repeat only the keys which should be repeated

Change-Id: I283bf6cc2f6c338fc769d77dd84ae7acb08eb7be
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Add a boolean return value to QWaylandCompositor::openUrl()

Change-Id: I46639a306461ac38c05a0a4459b56d49d7708ab5
Reviewed-by: Vesa Halttunen
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Update ignore list

Change-Id: I438e109b16d7de6e4ff9108eeeff9da3d2a9586b
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
Fix the y inversion of QWaylandSurfaceItem

Change-Id: Id42223b46658aa4cdcb0319ec5b6b2df9d8ca733
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Fix fetching of the y-inverted value fomr the wayland-egl integration

The default return value of isYInverted() is true, but we want to return
false by that point, unless the ifdeffed part was thrown away.

Change-Id: Ia875c1e3083c7c378cc7dd1f4b634f6fa7500f5b
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Destroy the SurfaceBuffers and their textures after the wl_buffer are destroyed

A SurfaceBuffer can live after its wl_buffer died, so make sure to delete
it when there is no surface or buffer reference that points to it anymore.

Change-Id: Id90453c74d14ca1414cb837b355430a510d5f07e
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
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
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
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
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Merge remote-tracking branch 'origin/stable' into dev

Conflicts:
	src/compositor/compositor_api/qwaylandsurfaceitem.cpp
	src/compositor/wayland_wrapper/qwlshellsurface_p.h
	src/compositor/wayland_wrapper/qwlshellsurface.cpp

Change-Id: I4ab33955153715150d3de6e991ff75910eee4416
Use wayland core interfaces to signal output rotation

The wl_output interface has an event for signaling the rotation of
the display, so use that instead of our own thing.

Change-Id: I8a017d575ee456a7a81649e19a015085fb784805
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Use wl_surface.set_buffer_transform to signal surface rotation

Drop the custom request in the surface extension, and use the
wayland core mechanism.

Change-Id: I580f56c90bcd3b2c5a6da08d1a033b10790ac330
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Fix checking initial screen aspect ratio

The first time QWaylandScreen gets an output_geometry() event its
screen() may not have been initialized yet, so manually check
if the output is portrait or landscape.

Change-Id: I1d58daee7a3f168a881a1e2d21956c52c09818fc
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
Make Surface own its visibility property

Change-Id: I5eb8ab7bfb16505c8a14c4d77c5ff55aa0e22cfc
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Resolve build warning on client code

QString::QString(const char*) is deprecated, wrap thread name
with QStringLiteral.

Change-Id: Ic914d05e7bee6e3f1c6aa0bede44a6b6b85be565
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
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
Reviewed-by: Giulio Camuffo <giulio.camuffo@jollamobile.com>
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