summaryrefslogtreecommitdiffstats
path: root/src/core/render_widget_host_view_qt.cpp
diff options
context:
space:
mode:
authorPeter Varga <pvarga@inf.u-szeged.hu>2018-11-19 13:43:54 +0100
committerPeter Varga <pvarga@inf.u-szeged.hu>2018-11-22 13:16:12 +0000
commit44abfea789b8677a741530c44a0cd35e5276ddf3 (patch)
tree6648c696d2c70d3b141dc69faca724ec2e67d97f /src/core/render_widget_host_view_qt.cpp
parent5fac32e6653e713f6e3e65e02e5c1b81df56c075 (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.cpp11
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.