diff --git a/src/plugins/platforms/wayland/qwaylandinputcontext.cpp b/src/plugins/platforms/wayland/qwaylandinputcontext.cpp index aeaf415d2cd..f211780fd97 100644 --- a/src/plugins/platforms/wayland/qwaylandinputcontext.cpp +++ b/src/plugins/platforms/wayland/qwaylandinputcontext.cpp @@ -185,6 +185,11 @@ void QWaylandTextInput::updateState(Qt::InputMethodQueries queries, uint32_t fla } } +void QWaylandTextInput::setCursorInsidePreedit(int) +{ + // Not supported yet +} + bool QWaylandTextInput::isInputPanelVisible() const { return m_inputPanelVisible; @@ -445,6 +450,15 @@ void QWaylandInputContext::update(Qt::InputMethodQueries queries) textInput()->updateState(queries, QtWayland::zwp_text_input_v2::update_state_change); } +void QWaylandInputContext::invokeAction(QInputMethod::Action action, int cursorPostion) +{ + if (!textInput()) + return; + + if (action == QInputMethod::Click) + textInput()->setCursorInsidePreedit(cursorPostion); +} + void QWaylandInputContext::showInputPanel() { qCDebug(qLcQpaInputMethods) << Q_FUNC_INFO; diff --git a/src/plugins/platforms/wayland/qwaylandinputcontext_p.h b/src/plugins/platforms/wayland/qwaylandinputcontext_p.h index 0429dd14e19..8b789e3420a 100644 --- a/src/plugins/platforms/wayland/qwaylandinputcontext_p.h +++ b/src/plugins/platforms/wayland/qwaylandinputcontext_p.h @@ -80,6 +80,8 @@ public: void commit(); void updateState(Qt::InputMethodQueries queries, uint32_t flags); + void setCursorInsidePreedit(int cursor); + bool isInputPanelVisible() const; QRectF keyboardRect() const; @@ -138,6 +140,8 @@ public: void commit() Q_DECL_OVERRIDE; void update(Qt::InputMethodQueries) Q_DECL_OVERRIDE; + void invokeAction(QInputMethod::Action, int cursorPosition) Q_DECL_OVERRIDE; + void showInputPanel() Q_DECL_OVERRIDE; void hideInputPanel() Q_DECL_OVERRIDE; bool isInputPanelVisible() const Q_DECL_OVERRIDE;