summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/client/qwaylandinputcontext.cpp10
-rw-r--r--src/shared/qwaylandinputmethodeventbuilder.cpp12
-rw-r--r--src/shared/qwaylandinputmethodeventbuilder_p.h4
3 files changed, 14 insertions, 12 deletions
diff --git a/src/client/qwaylandinputcontext.cpp b/src/client/qwaylandinputcontext.cpp
index e9afe05ed..6c586960e 100644
--- a/src/client/qwaylandinputcontext.cpp
+++ b/src/client/qwaylandinputcontext.cpp
@@ -269,12 +269,13 @@ void QWaylandTextInput::zwp_text_input_v2_preedit_string(const QString &text, co
if (!QGuiApplication::focusObject())
return;
- QInputMethodEvent event = m_builder.buildPreedit(text);
+ QInputMethodEvent *event = m_builder.buildPreedit(text);
m_builder.reset();
m_preeditCommit = commit;
- QCoreApplication::sendEvent(QGuiApplication::focusObject(), &event);
+ QCoreApplication::sendEvent(QGuiApplication::focusObject(), event);
+ delete event;
}
void QWaylandTextInput::zwp_text_input_v2_preedit_styling(uint32_t index, uint32_t length, uint32_t style)
@@ -298,11 +299,12 @@ void QWaylandTextInput::zwp_text_input_v2_commit_string(const QString &text)
if (!QGuiApplication::focusObject())
return;
- QInputMethodEvent event = m_builder.buildCommit(text);
+ QInputMethodEvent *event = m_builder.buildCommit(text);
m_builder.reset();
- QCoreApplication::sendEvent(QGuiApplication::focusObject(), &event);
+ QCoreApplication::sendEvent(QGuiApplication::focusObject(), event);
+ delete event;
}
void QWaylandTextInput::zwp_text_input_v2_cursor_position(int32_t index, int32_t anchor)
diff --git a/src/shared/qwaylandinputmethodeventbuilder.cpp b/src/shared/qwaylandinputmethodeventbuilder.cpp
index 5f3c8a55d..00e3ae14e 100644
--- a/src/shared/qwaylandinputmethodeventbuilder.cpp
+++ b/src/shared/qwaylandinputmethodeventbuilder.cpp
@@ -117,7 +117,7 @@ void QWaylandInputMethodEventBuilder::setPreeditCursor(int32_t index)
m_preeditCursor = index;
}
-QInputMethodEvent QWaylandInputMethodEventBuilder::buildCommit(const QString &text)
+QInputMethodEvent *QWaylandInputMethodEventBuilder::buildCommit(const QString &text)
{
QList<QInputMethodEvent::Attribute> attributes;
@@ -141,13 +141,13 @@ QInputMethodEvent QWaylandInputMethodEventBuilder::buildCommit(const QString &te
QVariant()));
}
- QInputMethodEvent event(QString(), attributes);
- event.setCommitString(text, replacement.first, replacement.second);
+ QInputMethodEvent *event = new QInputMethodEvent(QString(), attributes);
+ event->setCommitString(text, replacement.first, replacement.second);
return event;
}
-QInputMethodEvent QWaylandInputMethodEventBuilder::buildPreedit(const QString &text)
+QInputMethodEvent *QWaylandInputMethodEventBuilder::buildPreedit(const QString &text)
{
QList<QInputMethodEvent::Attribute> attributes;
@@ -163,10 +163,10 @@ QInputMethodEvent QWaylandInputMethodEventBuilder::buildPreedit(const QString &t
attributes.append(QInputMethodEvent::Attribute(attr.type, start, length, attr.value));
}
- QInputMethodEvent event(text, attributes);
+ QInputMethodEvent *event = new QInputMethodEvent(text, attributes);
const QPair<int, int> replacement = replacementForDeleteSurrounding();
- event.setCommitString(QString(), replacement.first, replacement.second);
+ event->setCommitString(QString(), replacement.first, replacement.second);
return event;
}
diff --git a/src/shared/qwaylandinputmethodeventbuilder_p.h b/src/shared/qwaylandinputmethodeventbuilder_p.h
index a234cf44b..2499a563f 100644
--- a/src/shared/qwaylandinputmethodeventbuilder_p.h
+++ b/src/shared/qwaylandinputmethodeventbuilder_p.h
@@ -58,8 +58,8 @@ public:
void addPreeditStyling(uint32_t index, uint32_t length, uint32_t style);
void setPreeditCursor(int32_t index);
- QInputMethodEvent buildCommit(const QString &text);
- QInputMethodEvent buildPreedit(const QString &text);
+ QInputMethodEvent *buildCommit(const QString &text);
+ QInputMethodEvent *buildPreedit(const QString &text);
static int indexFromWayland(const QString &text, int length, int base = 0);
static int indexToWayland(const QString &text, int length, int base = 0);