diff options
author | Andy Nichols <andy.nichols@digia.com> | 2014-01-09 15:10:43 +0100 |
---|---|---|
committer | Andy Nichols <andy.nichols@digia.com> | 2014-01-09 16:10:23 +0100 |
commit | 1c70431808ca2d0797fda05bb9ee3640bff800bb (patch) | |
tree | 6bbf1333b7da5afea2e163263820d5c40dbc1ea3 /src/compositor/compositor_api/qwaylandcompositor.h | |
parent | 3e02c41cc43a20c8af41730934ae7bbac02ab861 (diff) | |
parent | c9734e76ce03ebba63e34b60b16a9cca3efa3569 (diff) |
Merge remote-tracking branch stable into dev
Conflicts:
.qmake.conf
src/compositor/hardware_integration/qwaylandclientbufferintegrationplugin.h
src/plugins/hardwareintegration/compositor/brcm-egl/main.cpp
src/plugins/hardwareintegration/compositor/wayland-egl/main.cpp
src/plugins/hardwareintegration/compositor/xcomposite-egl/main.cpp
src/plugins/hardwareintegration/compositor/xcomposite-glx/main.cpp
src/plugins/platforms/qwayland-brcm-egl/main.cpp
src/plugins/platforms/qwayland-egl/main.cpp
src/plugins/platforms/qwayland-generic/main.cpp
src/plugins/platforms/qwayland-xcomposite-egl/main.cpp
src/plugins/platforms/qwayland-xcomposite-glx/main.cpp
Change-Id: I957c9bee893a9e19fc8c93f0e51292007fb3a4a8
Diffstat (limited to 'src/compositor/compositor_api/qwaylandcompositor.h')
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor.h | 40 |
1 files changed, 31 insertions, 9 deletions
diff --git a/src/compositor/compositor_api/qwaylandcompositor.h b/src/compositor/compositor_api/qwaylandcompositor.h index cd1f9bd38..40a151c55 100644 --- a/src/compositor/compositor_api/qwaylandcompositor.h +++ b/src/compositor/compositor_api/qwaylandcompositor.h @@ -54,6 +54,8 @@ class QUrl; class QOpenGLContext; class QWaylandSurface; class QWaylandInputDevice; +class QWaylandInputPanel; +class QWaylandDrag; namespace QtWayland { @@ -63,7 +65,21 @@ namespace QtWayland class Q_COMPOSITOR_EXPORT QWaylandCompositor { public: - QWaylandCompositor(QWindow *window = 0, const char *socketName = 0); + enum ExtensionFlag { + WindowManagerExtension = 0x01, + OutputExtension = 0x02, + SurfaceExtension = 0x04, + QtKeyExtension = 0x08, + TouchExtension = 0x10, + SubSurfaceExtension = 0x20, + TextInputExtension = 0x40, + HardwareIntegrationExtension = 0x80, + + DefaultExtensions = WindowManagerExtension | OutputExtension | SurfaceExtension | QtKeyExtension | TouchExtension | HardwareIntegrationExtension + }; + Q_DECLARE_FLAGS(ExtensionFlags, ExtensionFlag) + + QWaylandCompositor(QWindow *window = 0, const char *socketName = 0, ExtensionFlags extensions = DefaultExtensions); virtual ~QWaylandCompositor(); struct wl_display *waylandDisplay() const; @@ -83,13 +99,16 @@ public: virtual void surfaceCreated(QWaylandSurface *surface) = 0; virtual void surfaceAboutToBeDestroyed(QWaylandSurface *surface); + virtual QWaylandSurface *pickSurface(const QPointF &globalPosition) const; + virtual QPointF mapToSurface(QWaylandSurface *surface, const QPointF &surfacePosition) const; + virtual void openUrl(WaylandClient *client, const QUrl &url); QtWayland::Compositor *handle() const; - void setRetainedSelectionEnabled(bool enable); - virtual void retainedSelectionReceived(QMimeData *mimeData); - void overrideSelection(QMimeData *data); + void setRetainedSelectionEnabled(bool enabled); + bool retainedSelectionEnabled() const; + void overrideSelection(const QMimeData *data); void setClientFullScreenHint(bool value); @@ -105,29 +124,32 @@ public: QWaylandInputDevice *defaultInputDevice() const; + QWaylandInputPanel *inputPanel() const; + QWaylandDrag *drag() const; + bool isDragging() const; void sendDragMoveEvent(const QPoint &global, const QPoint &local, QWaylandSurface *surface); void sendDragEndEvent(); virtual void setCursorSurface(QWaylandSurface *surface, int hotspotX, int hotspotY); - void enableSubSurfaceExtension(); - - void enableTouchExtension(); enum TouchExtensionFlag { TouchExtMouseFromTouch = 0x01 }; Q_DECLARE_FLAGS(TouchExtensionFlags, TouchExtensionFlag) void configureTouchExtension(TouchExtensionFlags flags); -private: - static void retainedSelectionChanged(QMimeData *mimeData, void *param); +protected: + virtual void retainedSelectionReceived(QMimeData *mimeData); +private: + friend class QtWayland::Compositor; QtWayland::Compositor *m_compositor; QWindow *m_toplevel_window; QByteArray m_socket_name; }; +Q_DECLARE_OPERATORS_FOR_FLAGS(QWaylandCompositor::ExtensionFlags) Q_DECLARE_OPERATORS_FOR_FLAGS(QWaylandCompositor::TouchExtensionFlags) QT_END_NAMESPACE |