summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrederik Gladhorn <frederik.gladhorn@digia.com>2014-01-17 17:27:59 +0100
committerFrederik Gladhorn <frederik.gladhorn@digia.com>2014-01-17 17:27:59 +0100
commitb35ff7444654be62fb0f29c7ee79ee14c684ee6d (patch)
tree71f12792a61bcc202ca86834794be98cfac70246
parentcf3e6a6af1bffc04a138cfa8b7adc8aed8f4e105 (diff)
parent231d3a189afaa061dae71c8e939e59c0e120db4d (diff)
downloadqtwebkit-b35ff7444654be62fb0f29c7ee79ee14c684ee6d.tar.gz
Merge remote-tracking branch 'origin/stable' into dev
Conflicts: .qmake.conf Change-Id: I8721e8abb6b795242b5304ec28cf7cda56bfbce9
-rw-r--r--Source/WebKit2/WebProcess/WebPage/WebPage.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/Source/WebKit2/WebProcess/WebPage/WebPage.cpp b/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
index b25bd0245..6d75b2b83 100644
--- a/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
+++ b/Source/WebKit2/WebProcess/WebPage/WebPage.cpp
@@ -663,8 +663,20 @@ EditorState WebPage::editorState() const
result.selectedText = range->text();
}
- if (range)
+ if (range) {
result.cursorRect = frame->view()->contentsToWindow(frame->editor().firstRectForRange(range.get()));
+ // Check that at least one dimension is valid
+ if (result.cursorRect.width() != 0 || result.cursorRect.height() != 0)
+ {
+ if (result.cursorRect.width() == 0)
+ result.cursorRect.setWidth(1);
+ if (result.cursorRect.height() == 0)
+ result.cursorRect.setHeight(1);
+ }
+ // now adjust the cursor coordinates to take scrolling into account
+ result.cursorRect.moveBy(-frame->view()->visibleContentRect().location());
+ }
+
// FIXME: We should only transfer innerText when it changes and do this on the UI side.
if (result.isContentEditable && !result.isInPasswordField) {