virtual void commit();
virtual void update(Qt::InputMethodQueries);
virtual void invokeAction(QInputPanel::Action, int cursorPosition);
-
+ virtual bool filterEvent(const QEvent *event);
virtual QRectF keyboardRect() const;
void emitKeyboardRectChanged() const;
QByteArray chars;
xcb_keysym_t sym = lookupString(window, state, code, type, &chars);
+ QPlatformInputContext *inputContext = QGuiApplicationPrivate::platformIntegration()->inputContext();
-
- if (QObject* inputContext = QGuiApplicationPrivate::platformIntegration()->inputContext()) {
+ if (inputContext) {
bool retval = false;
if (inputContext->metaObject()->indexOfMethod("x11FilterEvent") != -1)
QMetaObject::invokeMethod(inputContext, "x11FilterEvent", Qt::DirectConnection,
int qtcode = 0;
int count = chars.count();
QString string = translateKeySym(sym, state, qtcode, modifiers, chars, count);
+
+ if (inputContext) {
+ QKeyEvent event(type, qtcode, modifiers, string);
+ event.setTimestamp(time);
+ bool retval = inputContext->filterEvent(&event);
+ if (retval)
+ return;
+ }
+
QWindowSystemInterface::handleExtendedKeyEvent(window, time, type, qtcode, modifiers,
code, 0, state, string.left(count));
}