summaryrefslogtreecommitdiffstats
path: root/src/plugins/platforms/testlite/qtestlitekeyboard.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/plugins/platforms/testlite/qtestlitekeyboard.cpp')
-rw-r--r--src/plugins/platforms/testlite/qtestlitekeyboard.cpp24
1 files changed, 7 insertions, 17 deletions
diff --git a/src/plugins/platforms/testlite/qtestlitekeyboard.cpp b/src/plugins/platforms/testlite/qtestlitekeyboard.cpp
index ca4c203..72e6d50 100644
--- a/src/plugins/platforms/testlite/qtestlitekeyboard.cpp
+++ b/src/plugins/platforms/testlite/qtestlitekeyboard.cpp
@@ -1,7 +1,5 @@
#include "qtestlitekeyboard.h"
-#include <QDebug>
-
#include "qtestlitescreen.h"
#include <QtGui/QWindowSystemInterface>
@@ -949,21 +947,13 @@ static Qt::KeyboardModifiers modifierFromKeyCode(int qtcode)
void QTestLiteKeyboard::handleKeyEvent(QWidget *widget, QEvent::Type type, XKeyEvent *ev)
{
- const int xkeycode = ev->keycode;
- const uint xmodifiers = ev->state;
-
- KeySym baseKeySym;
- uint consumedModifiers;
- if (!XkbLookupKeySym(m_screen->display(), xkeycode, (xmodifiers & (LockMask | m_num_lock_mask)),
- &consumedModifiers, &baseKeySym))
- return;
-
- Qt::KeyboardModifiers baseModifiers = 0;
- int baseCode = -1;
+ int qtcode = 0;
+ Qt::KeyboardModifiers modifiers = translateModifiers(ev->state);
QByteArray chars;
+ chars.resize(513);
int count = 0;
- QString text = translateKeySym(baseKeySym, xmodifiers, baseCode, baseModifiers, chars, count);
-
- QWindowSystemInterface::handleKeyEvent(widget,ev->time,type,baseCode,baseModifiers,text.left(count));
-
+ KeySym keySym;
+ count = XLookupString(ev,chars.data(),chars.size(),&keySym,0);
+ QString text = translateKeySym(keySym,ev->state,qtcode,modifiers,chars,count);
+ QWindowSystemInterface::handleKeyEvent(widget,ev->time,type,qtcode,modifiers,text.left(count));
}