diff options
author | Paul Olav Tvete <paul.tvete@qt.io> | 2017-03-13 13:50:39 +0100 |
---|---|---|
committer | Paul Olav Tvete <paul.tvete@qt.io> | 2017-03-13 13:51:33 +0100 |
commit | dfcda81c5b13ad15517a37bcc45f3bf5f550466c (patch) | |
tree | f765a484186ad629aea0c3dbba94e4097a5b68aa | |
parent | e2805ef5438117b7828fef33876049c4c00868d2 (diff) | |
parent | 3d8b3113c2349b5e002ece39ff20118b471aac6e (diff) | |
download | qtwayland-dfcda81c5b13ad15517a37bcc45f3bf5f550466c.tar.gz |
Merge remote-tracking branch 'origin/5.8' into 5.9
Change-Id: I76be82a6da77f51f6d53239d593dc6f61951559b
-rw-r--r-- | src/compositor/compositor_api/qwaylandkeyboard.cpp | 8 | ||||
-rw-r--r-- | src/shared/qwaylandxkb.cpp | 18 | ||||
-rw-r--r-- | src/shared/qwaylandxkb_p.h | 7 |
3 files changed, 33 insertions, 0 deletions
diff --git a/src/compositor/compositor_api/qwaylandkeyboard.cpp b/src/compositor/compositor_api/qwaylandkeyboard.cpp index 55381b45..986f819f 100644 --- a/src/compositor/compositor_api/qwaylandkeyboard.cpp +++ b/src/compositor/compositor_api/qwaylandkeyboard.cpp @@ -175,7 +175,11 @@ void QWaylandKeyboardPrivate::keyboard_release(wl_keyboard::Resource *resource) void QWaylandKeyboardPrivate::keyEvent(uint code, uint32_t state) { +#if QT_CONFIG(xkbcommon_evdev) uint key = toWaylandXkbV1Key(code); +#else + uint key = code; +#endif if (state == WL_KEYBOARD_KEY_STATE_PRESSED) { keys << key; } else { @@ -187,7 +191,11 @@ void QWaylandKeyboardPrivate::sendKeyEvent(uint code, uint32_t state) { uint32_t time = compositor()->currentTimeMsecs(); uint32_t serial = compositor()->nextSerial(); +#if QT_CONFIG(xkbcommon_evdev) uint key = toWaylandXkbV1Key(code); +#else + uint key = code; +#endif if (focusResource) send_key(focusResource->handle, serial, time, key, state); } diff --git a/src/shared/qwaylandxkb.cpp b/src/shared/qwaylandxkb.cpp index 3e04467d..a0e388a1 100644 --- a/src/shared/qwaylandxkb.cpp +++ b/src/shared/qwaylandxkb.cpp @@ -43,10 +43,13 @@ #include <QKeyEvent> #include <QString> +#if QT_CONFIG(xkbcommon_evdev) #include <xkbcommon/xkbcommon-keysyms.h> +#endif QT_BEGIN_NAMESPACE +#if QT_CONFIG(xkbcommon_evdev) static const uint32_t KeyTbl[] = { XKB_KEY_Escape, Qt::Key_Escape, XKB_KEY_Tab, Qt::Key_Tab, @@ -290,9 +293,11 @@ static xkb_keysym_t toKeysymFromTable(uint32_t key) return 0; } +#endif std::pair<int, QString> QWaylandXkb::keysymToQtKey(xkb_keysym_t keysym, Qt::KeyboardModifiers &modifiers) { +#if QT_CONFIG(xkbcommon_evdev) QString text; uint utf32 = xkb_keysym_to_utf32(keysym); if (utf32) @@ -326,10 +331,15 @@ std::pair<int, QString> QWaylandXkb::keysymToQtKey(xkb_keysym_t keysym, Qt::Keyb } return { code, text }; +#else + Q_UNUSED(modifiers) + return { keysym, "" }; +#endif } Qt::KeyboardModifiers QWaylandXkb::modifiers(struct xkb_state *state) { +#if QT_CONFIG(xkbcommon_evdev) Qt::KeyboardModifiers modifiers = Qt::NoModifier; xkb_state_component cstate = static_cast<xkb_state_component>(XKB_STATE_DEPRESSED | XKB_STATE_LATCHED | XKB_STATE_LOCKED); @@ -344,6 +354,10 @@ Qt::KeyboardModifiers QWaylandXkb::modifiers(struct xkb_state *state) modifiers |= Qt::MetaModifier; return modifiers; +#else + Q_UNUSED(state) + return Qt::NoModifier; +#endif } QEvent::Type QWaylandXkb::toQtEventType(uint32_t state) @@ -353,6 +367,7 @@ QEvent::Type QWaylandXkb::toQtEventType(uint32_t state) QVector<xkb_keysym_t> QWaylandXkb::toKeysym(QKeyEvent *event) { +#if QT_CONFIG(xkbcommon_evdev) QVector<xkb_keysym_t> keysyms; if (event->key() >= Qt::Key_F1 && event->key() <= Qt::Key_F35) { keysyms.append(XKB_KEY_F1 + (event->key() - Qt::Key_F1)); @@ -372,6 +387,9 @@ QVector<xkb_keysym_t> QWaylandXkb::toKeysym(QKeyEvent *event) keysyms.append(toKeysymFromTable(event->key())); } return keysyms; +#else + return QVector<xkb_keysym_t>() << event->nativeScanCode(); +#endif } QT_END_NAMESPACE diff --git a/src/shared/qwaylandxkb_p.h b/src/shared/qwaylandxkb_p.h index 230159fb..6fa1ea45 100644 --- a/src/shared/qwaylandxkb_p.h +++ b/src/shared/qwaylandxkb_p.h @@ -41,9 +41,16 @@ #ifndef QWAYLANDXKB_H #define QWAYLANDXKB_H +#include <QtGui/private/qtguiglobal_p.h> #include <Qt> #include <QEvent> + +#if QT_CONFIG(xkbcommon_evdev) #include <xkbcommon/xkbcommon.h> +#else +typedef quint32 xkb_keysym_t; +struct xkb_state; +#endif #include <utility> |