diff options
author | Gatis Paeglis <gatis.paeglis@qt.io> | 2018-12-13 22:04:18 +0100 |
---|---|---|
committer | Gatis Paeglis <gatis.paeglis@qt.io> | 2019-04-15 14:10:34 +0000 |
commit | 4de344decf7db4d7703575a78d6013a5c776bf1e (patch) | |
tree | 0ca5b0667c6f7e182b79c674a7f49486a0a51f8b /src/client/qwaylanddisplay_p.h | |
parent | 3aedd01271dc4f4a13103d632df224971ab2b6df (diff) |
client: rework xkb context/keymap/state handling
- Use smart pointers from xkbcommon_support-private.
- Remove needless strdup() calls.
- Don't recreate context. And move it into qwaylanddisplay so it can
be shared in future between several keyboards. It contains things like
a logging level and include paths.
Change-Id: I5d1f667e710046e6b62aa2caf82fdb2decc24520
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Diffstat (limited to 'src/client/qwaylanddisplay_p.h')
-rw-r--r-- | src/client/qwaylanddisplay_p.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/client/qwaylanddisplay_p.h b/src/client/qwaylanddisplay_p.h index 836ee0f9a..3ced2d9e3 100644 --- a/src/client/qwaylanddisplay_p.h +++ b/src/client/qwaylanddisplay_p.h @@ -65,6 +65,10 @@ #include <qpa/qplatforminputcontextfactory_p.h> +#if QT_CONFIG(xkbcommon) +#include <QtXkbCommonSupport/private/qxkbcommon_p.h> +#endif + struct wl_cursor_image; QT_BEGIN_NAMESPACE @@ -111,6 +115,10 @@ public: QWaylandDisplay(QWaylandIntegration *waylandIntegration); ~QWaylandDisplay(void) override; +#if QT_CONFIG(xkbcommon) + struct xkb_context *xkbContext() const { return mXkbContext.get(); } +#endif + QList<QWaylandScreen *> screens() const { return mScreens; } QWaylandScreen *screenForOutput(struct wl_output *output) const; @@ -246,6 +254,10 @@ private: void registry_global(uint32_t id, const QString &interface, uint32_t version) override; void registry_global_remove(uint32_t id) override; +#if QT_CONFIG(xkbcommon) + QXkbCommon::ScopedXKBContext mXkbContext; +#endif + friend class QWaylandIntegration; }; |