5#ifndef QTWAYLAND_QWLKEYBOARD_P_H
6#define QTWAYLAND_QWLKEYBOARD_P_H
18#include <QtWaylandCompositor/private/qwaylandcompositor_p.h>
20#include <QtWaylandCompositor/private/qtwaylandcompositorglobal_p.h>
21#include <QtWaylandCompositor/qwaylandseat.h>
22#include <QtWaylandCompositor/qwaylandkeyboard.h>
23#include <QtWaylandCompositor/qwaylanddestroylistener.h>
25#include <QtCore/private/qobject_p.h>
26#include <QtWaylandCompositor/private/qwayland-server-wayland.h>
28#include <QtCore/QList>
30#if QT_CONFIG(xkbcommon)
31#include <xkbcommon/xkbcommon.h>
32#include <QtGui/private/qxkbcommon_p.h>
39 ,
public QtWaylandServer::wl_keyboard
53#if QT_CONFIG(xkbcommon)
54 struct xkb_state *xkbState()
const {
return mXkbState.get(); }
55 struct xkb_context *xkbContext()
const {
58 uint32_t xkbModsMask()
const {
return modsDepressed | modsLatched | modsLocked; }
59 void maybeUpdateXkbScanCodeTable();
60 void resetKeyboardState();
64 void sendKeyEvent(
uint code, uint32_t
state);
65 void updateModifierState(
uint code, uint32_t
state);
66 void checkAndRepairModifierState(
QKeyEvent *ke);
67 void maybeUpdateKeymap();
69 void checkFocusResource(Resource *resource);
73 void keyboard_bind_resource(Resource *resource)
override;
74 void keyboard_destroy_resource(Resource *resource)
override;
75 void keyboard_release(Resource *resource)
override;
78#if QT_CONFIG(xkbcommon)
79 void createXKBKeymap();
80 void createXKBState(xkb_keymap *keymap);
82 static uint toWaylandKey(
const uint nativeScanCode);
85 void sendRepeatInfo();
90 Resource *focusResource =
nullptr;
94 uint32_t modsDepressed = 0;
95 uint32_t modsLatched = 0;
96 uint32_t modsLocked = 0;
99 uint32_t shiftIndex = 0;
100 uint32_t controlIndex = 0;
101 uint32_t altIndex = 0;
103 Qt::KeyboardModifiers currentModifierState;
105 bool pendingKeymap =
false;
106#if QT_CONFIG(xkbcommon)
109 char *keymap_area =
nullptr;
110 using ScanCodeKey = std::pair<uint,int>;
The QKeyEvent class describes a key event.
static QObjectPrivate * get(QObject *o)
static QWaylandCompositorPrivate * get(QWaylandCompositor *compositor)
\qmltype WaylandCompositor \instantiates QWaylandCompositor \inqmlmodule QtWayland....
QWaylandCompositor * compositor() const
\inmodule QtWaylandCompositor
\qmltype WaylandSeat \instantiates QWaylandSeat \inqmlmodule QtWayland.Compositor
QWaylandCompositor * compositor() const
Returns the compositor for this QWaylandSeat.
\qmltype WaylandSurface \instantiates QWaylandSurface \inqmlmodule QtWayland.Compositor
std::unique_ptr< struct xkb_state, XKBStateDeleter > ScopedXKBState
Combined button and popup list for selecting options.