summaryrefslogtreecommitdiffstats
path: root/src/shared
diff options
context:
space:
mode:
authorGiulio Camuffo <giulio.camuffo@kdab.com>2017-03-01 12:12:55 +0100
committerGiulio Camuffo <giulio.camuffo@kdab.com>2017-03-08 17:00:54 +0000
commit3d8b3113c2349b5e002ece39ff20118b471aac6e (patch)
tree7c00902e9c8b96c362a79c10835eea4b119ec47b /src/shared
parent7d527c1914710a511c06713bbda1572b767cea34 (diff)
Fix build when xkbcommon is disabled
Change-Id: I0ec7a5aa8300e796b015c0d995e71ebf77727bbd Task-number: QTBUG-58839 Reviewed-by: Jan Arne Petersen <jan.petersen@kdab.com> Reviewed-by: Yong Bakos <junk@humanoriented.com> Reviewed-by: Paul Olav Tvete <paul.tvete@qt.io>
Diffstat (limited to 'src/shared')
-rw-r--r--src/shared/qwaylandxkb.cpp18
-rw-r--r--src/shared/qwaylandxkb_p.h7
2 files changed, 25 insertions, 0 deletions
diff --git a/src/shared/qwaylandxkb.cpp b/src/shared/qwaylandxkb.cpp
index 3e04467de..a0e388a1c 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 230159fbb..6fa1ea45b 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>