summaryrefslogtreecommitdiffstats
path: root/src/client/qwaylandinputcontext.cpp
diff options
context:
space:
mode:
authorGiulio Camuffo <giulio.camuffo@jollamobile.com>2015-01-07 22:31:43 +0200
committerGiulio Camuffo <giulio.camuffo@jollamobile.com>2015-01-13 14:01:42 +0100
commit90d0e4c7e1929b9fabfdd41ce76e001b045d4327 (patch)
treeada4d9c0c98d7613ce75c11076c7a5880645cda6 /src/client/qwaylandinputcontext.cpp
parentc574c14cb62fda7026d11ee58194411e84a91960 (diff)
Set the composing string of the wayland input method
Task-number: QTBUG-43346 Change-Id: I9bc6d804ddca59a7a0173b8f0d3ec2f268fe9a59 Reviewed-by: Jørgen Lind <jorgen.lind@theqtcompany.com>
Diffstat (limited to 'src/client/qwaylandinputcontext.cpp')
-rw-r--r--src/client/qwaylandinputcontext.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/client/qwaylandinputcontext.cpp b/src/client/qwaylandinputcontext.cpp
index 8a711955e..e189b9451 100644
--- a/src/client/qwaylandinputcontext.cpp
+++ b/src/client/qwaylandinputcontext.cpp
@@ -124,6 +124,18 @@ void QWaylandTextInput::updateState()
commit_state(++m_serial);
}
+void QWaylandTextInput::text_input_preedit_string(uint32_t serial, const QString &text, const QString &commit)
+{
+ Q_UNUSED(serial)
+ if (!QGuiApplication::focusObject())
+ return;
+
+ m_commit = commit;
+ QList<QInputMethodEvent::Attribute> attributes;
+ QInputMethodEvent event(text, attributes);
+ QCoreApplication::sendEvent(QGuiApplication::focusObject(), &event);
+}
+
void QWaylandTextInput::text_input_commit_string(uint32_t serial, const QString &text)
{
Q_UNUSED(serial);
@@ -133,6 +145,8 @@ void QWaylandTextInput::text_input_commit_string(uint32_t serial, const QString
QInputMethodEvent event;
event.setCommitString(text);
QCoreApplication::sendEvent(QGuiApplication::focusObject(), &event);
+
+ m_commit = QString();
}
void QWaylandTextInput::text_input_enter(wl_surface *)
@@ -143,6 +157,8 @@ void QWaylandTextInput::text_input_enter(wl_surface *)
void QWaylandTextInput::text_input_leave()
{
+ if (!m_commit.isEmpty())
+ text_input_commit_string(0, m_commit);
}
void QWaylandTextInput::text_input_keysym(uint32_t serial, uint32_t time, uint32_t sym, uint32_t state, uint32_t modifiers)