diff options
author | Peter Varga <pvarga@inf.u-szeged.hu> | 2018-11-19 13:43:54 +0100 |
---|---|---|
committer | Peter Varga <pvarga@inf.u-szeged.hu> | 2018-11-22 13:16:12 +0000 |
commit | 44abfea789b8677a741530c44a0cd35e5276ddf3 (patch) | |
tree | 6648c696d2c70d3b141dc69faca724ec2e67d97f /src/core/render_widget_host_view_qt.cpp | |
parent | 5fac32e6653e713f6e3e65e02e5c1b81df56c075 (diff) |
Fix IME with negative start position
Change-Id: I64a39975788cc40c5e0595c1a0c5db9000889bfd
Reviewed-by: Allan Sandfeld Jensen <allan.jensen@qt.io>
Diffstat (limited to 'src/core/render_widget_host_view_qt.cpp')
-rw-r--r-- | src/core/render_widget_host_view_qt.cpp | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/core/render_widget_host_view_qt.cpp b/src/core/render_widget_host_view_qt.cpp index af7471759..267460bdc 100644 --- a/src/core/render_widget_host_view_qt.cpp +++ b/src/core/render_widget_host_view_qt.cpp @@ -1316,14 +1316,9 @@ void RenderWidgetHostViewQt::handleInputMethodEvent(QInputMethodEvent *ev) if (replacementLength > 0) { - int start = ev->replacementStart(); - - if (start >= 0) - replacementRange = gfx::Range(start, start + replacementLength); - else if (m_surroundingText.length() + start >= 0) { - start = m_surroundingText.length() + start; - replacementRange = gfx::Range(start, start + replacementLength); - } + int replacementStart = ev->replacementStart() < 0 ? m_cursorPosition + ev->replacementStart() : ev->replacementStart(); + if (replacementStart >= 0 && replacementStart < m_surroundingText.length()) + replacementRange = gfx::Range(replacementStart, replacementStart + replacementLength); } // There are so-far two known cases, when an empty QInputMethodEvent is received. |