QtCompositor: Make ExtensionFlags a QFlags

This simplifies the creation and use of ExtensionFlags.

Change-Id: Ia72bbc3f712759b231d8543a4f13ef2fdf6260f3
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
InputMethod extension fixups

Add a missing slot decorator and a missing return statement.

Change-Id: Iad7944b1b9d35ce45818d3be418dc897d7deed69
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
QtCompositor: simplify retained selection implementation

There is no reason to use a function pointer to handle selection override.

Change-Id: Ic25d8f7cef97ce25666022e5119546647ec526f0
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
QtCompositor: Handle destroyed DataSource objects in DataDevice

Fast selections can create dangling pointers to DataSource objects, so
make sure the DataDevice is aware of DataSource destruction.

Change-Id: Ibcb7eec3b3403bd6ee53b6f09815d78148f65b4d
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
QtCompositor: handle destruction in InputMethod

Fix dangling pointers to resources when the InputMethod is closed.

Change-Id: I177c954d27e8bd86bcf90fa89bf92d58ae023b9c
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
QtCompositor: Allow key events to be delivered to unfocused windows

Adds an overload to QWaylandInput::sendFullKeyEvent which allows
specifying the surface to deliver the event to. This also extends
the Qt keyboard extension to allow sending keys to specific windows.

Change-Id: I1b7abdc4d8a30392ef2e7ee5e9af5b3036b23577
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>
QtCompositor: Allow key events to be delivered to unfocused windows

Adds an overload to QWaylandInput::sendFullKeyEvent which allows
specifying the surface to deliver the event to. This also extends
the Qt keyboard extension to allow sending keys to specific windows.

Change-Id: I1b7abdc4d8a30392ef2e7ee5e9af5b3036b23577
Reviewed-by: Laszlo Agocs <laszlo.agocs@digia.com>