diff --git a/src/plugins/platforms/wayland/qwaylandtextinputv3.cpp b/src/plugins/platforms/wayland/qwaylandtextinputv3.cpp index 968746abb07..fbb40c2e216 100644 --- a/src/plugins/platforms/wayland/qwaylandtextinputv3.cpp +++ b/src/plugins/platforms/wayland/qwaylandtextinputv3.cpp @@ -54,6 +54,12 @@ void QWaylandTextInputv3::enableSurface(::wl_surface *surface) m_pendingCommitString.clear(); m_pendingDeleteBeforeText = 0; m_pendingDeleteAfterText = 0; + m_surroundingText.clear(); + m_cursor = 0; + m_cursorPos = 0; + m_anchorPos = 0; + m_contentHint = 0; + m_contentPurpose = 0; m_cursorRect = QRect(); enable(); @@ -385,8 +391,7 @@ void QWaylandTextInputv3::updateState(Qt::InputMethodQueries queries, uint32_t f } } - if (flags == update_state_enter - || (flags == update_state_change && needsCommit)) + if (needsCommit) commit(); } diff --git a/src/plugins/platforms/wayland/qwaylandtextinputv3_p.h b/src/plugins/platforms/wayland/qwaylandtextinputv3_p.h index 9a0d7e8a5f4..777d6c17d34 100644 --- a/src/plugins/platforms/wayland/qwaylandtextinputv3_p.h +++ b/src/plugins/platforms/wayland/qwaylandtextinputv3_p.h @@ -86,9 +86,9 @@ private: uint m_pendingDeleteAfterText = 0; // byte length QString m_surroundingText; - int m_cursor; // cursor position in QString - int m_cursorPos; // cursor position in wayland index - int m_anchorPos; // anchor position in wayland index + int m_cursor = 0; // cursor position in QString + int m_cursorPos = 0; // cursor position in wayland index + int m_anchorPos = 0; // anchor position in wayland index uint32_t m_contentHint = 0; uint32_t m_contentPurpose = 0; QRect m_cursorRect;