diff options
author | Giulio Camuffo <giulio.camuffo@jollamobile.com> | 2014-07-01 15:56:11 +0300 |
---|---|---|
committer | Pier Luigi Fiorini <pierluigi.fiorini@gmail.com> | 2014-08-07 07:59:00 +0200 |
commit | d107e2ba88e44590f77c608073eee6429f3d3a8c (patch) | |
tree | 5b96804a31b04c8f17fff03907815f9a90fc24ab /src/client/qwaylandintegration_p.h | |
parent | 3419c5a868b6f528cfb17ee19261c937163ea7e0 (diff) | |
download | qtwayland-d107e2ba88e44590f77c608073eee6429f3d3a8c.tar.gz |
Add a way to have out of source shell integrations
Some platforms (especially non-desktop ones) may use a custom
Wayland shell extension, more tailored to the form factor than
the generic and desktoppy wl_shell or xdg_shell. Instead of stuffing
N protocol implementations in the QPA plugin use a plugin architecture
to allow them to live out of tree.
When creating a shell surface the QT_WAYLAND_SHELL_INTEGRATION env
variable will be checked, and if it points to a valid plugin that
will be used to create the shell surface, falling back to wl_shell
or xdg_shell if no plugin is specified.
Change-Id: I05019174bb915199dd726f5fdcc0385ef846e8de
Reviewed-by: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Reviewed-by: Philippe Coval <rzr@gna.org>
Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com>
Reviewed-by: Gunnar Sletta <gunnar.sletta@jollamobile.com>
Diffstat (limited to 'src/client/qwaylandintegration_p.h')
-rw-r--r-- | src/client/qwaylandintegration_p.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/client/qwaylandintegration_p.h b/src/client/qwaylandintegration_p.h index 7c062c0e..025e0b4d 100644 --- a/src/client/qwaylandintegration_p.h +++ b/src/client/qwaylandintegration_p.h @@ -51,6 +51,7 @@ class QWaylandBuffer; class QWaylandDisplay; class QWaylandClientBufferIntegration; class QWaylandServerBufferIntegration; +class QWaylandShellIntegration; class Q_WAYLAND_CLIENT_EXPORT QWaylandIntegration : public QPlatformIntegration { @@ -90,12 +91,15 @@ public: virtual QWaylandClientBufferIntegration *clientBufferIntegration() const; virtual QWaylandServerBufferIntegration *serverBufferIntegration() const; + virtual QWaylandShellIntegration *shellIntegration() const; protected: QWaylandClientBufferIntegration *mClientBufferIntegration; QWaylandServerBufferIntegration *mServerBufferIntegration; + QWaylandShellIntegration *mShellIntegration; private: void initializeClientBufferIntegration(); void initializeServerBufferIntegration(); + void initializeShellIntegration(); QPlatformFontDatabase *mFontDb; QPlatformClipboard *mClipboard; QPlatformDrag *mDrag; @@ -105,6 +109,7 @@ private: QPlatformAccessibility *mAccessibility; bool mClientBufferIntegrationInitialized; bool mServerBufferIntegrationInitialized; + bool mShellIntegrationInitialized; }; QT_END_NAMESPACE |