diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-01-17 17:27:59 +0100 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2014-01-17 17:27:59 +0100 |
commit | b35ff7444654be62fb0f29c7ee79ee14c684ee6d (patch) | |
tree | 71f12792a61bcc202ca86834794be98cfac70246 | |
parent | cf3e6a6af1bffc04a138cfa8b7adc8aed8f4e105 (diff) | |
parent | 231d3a189afaa061dae71c8e939e59c0e120db4d (diff) | |
download | qtwebkit-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.cpp | 14 |
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) { |