summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/compositor/compositor_api/qwaylandcompositor.h7
-rw-r--r--src/compositor/wayland_wrapper/qwlcompositor_p.h1
-rw-r--r--src/compositor/wayland_wrapper/qwlinputdevice.cpp6
3 files changed, 8 insertions, 6 deletions
diff --git a/src/compositor/compositor_api/qwaylandcompositor.h b/src/compositor/compositor_api/qwaylandcompositor.h
index a7026f3d0..e2990a6a1 100644
--- a/src/compositor/compositor_api/qwaylandcompositor.h
+++ b/src/compositor/compositor_api/qwaylandcompositor.h
@@ -159,6 +159,10 @@ public:
QWaylandInputDevice *inputDeviceFor(QInputEvent *inputEvent);
+ virtual QWaylandPointer *createPointerDevice(QWaylandInputDevice *inputDevice);
+ virtual QWaylandKeyboard *createKeyboardDevice(QWaylandInputDevice *inputDevice);
+ virtual QWaylandTouch *createTouchDevice(QWaylandInputDevice *inputDevice);
+
Q_SIGNALS:
void surfaceCreated(QWaylandSurface *surface);
void surfaceAboutToBeDestroyed(QWaylandSurface *surface);
@@ -179,9 +183,6 @@ protected:
virtual QWaylandSurface *createSurface(QWaylandClient *client, quint32 id, int version);
virtual QWaylandSurfaceView *createView();
virtual QWaylandInputDevice *createInputDevice();
- virtual QWaylandPointer *createPointerDevice(QWaylandInputDevice *inputDevice);
- virtual QWaylandKeyboard *createKeyboardDevice(QWaylandInputDevice *inputDevice);
- virtual QWaylandTouch *createTouchDevice(QWaylandInputDevice *inputDevice);
friend class QtWayland::Compositor;
friend class QWaylandOutputSpacePrivate;
diff --git a/src/compositor/wayland_wrapper/qwlcompositor_p.h b/src/compositor/wayland_wrapper/qwlcompositor_p.h
index 13ae861be..f6e0e0024 100644
--- a/src/compositor/wayland_wrapper/qwlcompositor_p.h
+++ b/src/compositor/wayland_wrapper/qwlcompositor_p.h
@@ -149,6 +149,7 @@ public Q_SLOTS:
protected:
void compositor_create_surface(Resource *resource, uint32_t id) Q_DECL_OVERRIDE;
void compositor_create_region(Resource *resource, uint32_t id) Q_DECL_OVERRIDE;
+
private Q_SLOTS:
void processWaylandEvents();
diff --git a/src/compositor/wayland_wrapper/qwlinputdevice.cpp b/src/compositor/wayland_wrapper/qwlinputdevice.cpp
index 643677521..74c90f8f5 100644
--- a/src/compositor/wayland_wrapper/qwlinputdevice.cpp
+++ b/src/compositor/wayland_wrapper/qwlinputdevice.cpp
@@ -110,15 +110,15 @@ void QWaylandInputDevicePrivate::setCapabilities(QWaylandInputDevice::Capability
QWaylandInputDevice::CapabilityFlags changed = caps ^ m_capabilities;
if (changed & QWaylandInputDevice::Pointer) {
- m_pointer.reset(m_pointer.isNull() ? new QWaylandPointer(q) : 0);
+ m_pointer.reset(m_pointer.isNull() ? compositor()->createPointerDevice(q) : 0);
}
if (changed & QWaylandInputDevice::Keyboard) {
- m_keyboard.reset(m_keyboard.isNull() ? new QWaylandKeyboard(q) : 0);
+ m_keyboard.reset(m_keyboard.isNull() ? compositor()->createKeyboardDevice(q) : 0);
}
if (changed & QWaylandInputDevice::Touch) {
- m_touch.reset(m_touch.isNull() ? new QWaylandTouch(q) : 0);
+ m_touch.reset(m_touch.isNull() ? compositor()->createTouchDevice(q) : 0);
}
m_capabilities = caps;