diff options
author | Gatis Paeglis <gatis.paeglis@qt.io> | 2018-12-14 12:14:42 +0100 |
---|---|---|
committer | Gatis Paeglis <gatis.paeglis@qt.io> | 2019-04-16 09:18:41 +0000 |
commit | 60dc973ab2c9227e2b6161a8b61a8c129e8b8cbc (patch) | |
tree | 1772a6cc5dfc3426c36f9dcc63c461f1e9edf950 /src/compositor/compositor_api/qwaylandcompositor_p.h | |
parent | 6eda0ca6aff3df020f71c74a3834f388cbdc685d (diff) |
compositor: rework xkb context/keymap/state handling
- Use smart pointers from xkbcommon_support-private.
- Avoid unnecessary strdup()/free() calls.
- Don't recreate context. And move it into qwaylandcompositor so
it can be shared between seats. It contains things like a logging
level and include paths.
Change-Id: Ibea29f2874cc147a8e08f15192831fa42ca58f48
Reviewed-by: Johan Helsing <johan.helsing@qt.io>
Diffstat (limited to 'src/compositor/compositor_api/qwaylandcompositor_p.h')
-rw-r--r-- | src/compositor/compositor_api/qwaylandcompositor_p.h | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/src/compositor/compositor_api/qwaylandcompositor_p.h b/src/compositor/compositor_api/qwaylandcompositor_p.h index d91977def..2c9624216 100644 --- a/src/compositor/compositor_api/qwaylandcompositor_p.h +++ b/src/compositor/compositor_api/qwaylandcompositor_p.h @@ -60,6 +60,10 @@ #include <QtWaylandCompositor/private/qwayland-server-wayland.h> +#if QT_CONFIG(xkbcommon) +#include <QtXkbCommonSupport/private/qxkbcommon_p.h> +#endif + QT_BEGIN_NAMESPACE namespace QtWayland { @@ -81,6 +85,10 @@ public: QWaylandCompositorPrivate(QWaylandCompositor *compositor); ~QWaylandCompositorPrivate() override; +#if QT_CONFIG(xkbcommon) + struct xkb_context *xkbContext() const { return mXkbContext.get(); } +#endif + void preInit(); void init(); @@ -169,6 +177,10 @@ protected: bool initialized = false; QList<QPointer<QObject> > polish_objects; +#if QT_CONFIG(xkbcommon) + QXkbCommon::ScopedXKBContext mXkbContext; +#endif + Q_DECLARE_PUBLIC(QWaylandCompositor) Q_DISABLE_COPY(QWaylandCompositorPrivate) }; |