Commit ec075147 authored by leviw@chromium.org's avatar leviw@chromium.org

2011-01-25 Levi Weintraub <leviw@chromium.org>

        Reviewed by Darin Adler.

        Updating the expected result for 5408255 and adding tests for caret positioning at the
        beginning and end of RenderBoxes.

        Undo moves caret to invalid position
        https://bugs.webkit.org/show_bug.cgi?id=49744

        * editing/selection/caret-painting-after-paste-undo-rtl.html: Added.
        * editing/selection/caret-painting-after-paste-undo.html: Added.
        * platform/mac/editing/deleting/5408255-expected.png:
        * platform/mac/editing/selection/caret-painting-after-paste-undo-expected.checksum: Added.
        * platform/mac/editing/selection/caret-painting-after-paste-undo-expected.png: Added.
        * platform/mac/editing/selection/caret-painting-after-paste-undo-expected.txt: Added.
        * platform/mac/editing/selection/caret-painting-after-paste-undo-rtl-expected.checksum: Added.
        * platform/mac/editing/selection/caret-painting-after-paste-undo-rtl-expected.png: Added.
        * platform/mac/editing/selection/caret-painting-after-paste-undo-rtl-expected.txt: Added.
2011-01-25  Levi Weintraub  <leviw@chromium.org>

        Reviewed by Darin Adler.

        Adding border and padding to the calculation of the local caret rect for RenderBoxes.
        Corrected for mistake in r76625

        Undo moves caret to invalid position
        https://bugs.webkit.org/show_bug.cgi?id=49744

        Tests: editing/selection/caret-painting-after-paste-undo-rtl.html
               editing/selection/caret-painting-after-paste-undo.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::localCaretRect):


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76839 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent b8878869
2011-01-25 Levi Weintraub <leviw@chromium.org>
Reviewed by Darin Adler.
Updating the expected result for 5408255 and adding tests for caret positioning at the
beginning and end of RenderBoxes.
Undo moves caret to invalid position
https://bugs.webkit.org/show_bug.cgi?id=49744
* editing/selection/caret-painting-after-paste-undo-rtl.html: Added.
* editing/selection/caret-painting-after-paste-undo.html: Added.
* platform/mac/editing/deleting/5408255-expected.png:
* platform/mac/editing/selection/caret-painting-after-paste-undo-expected.checksum: Added.
* platform/mac/editing/selection/caret-painting-after-paste-undo-expected.png: Added.
* platform/mac/editing/selection/caret-painting-after-paste-undo-expected.txt: Added.
* platform/mac/editing/selection/caret-painting-after-paste-undo-rtl-expected.checksum: Added.
* platform/mac/editing/selection/caret-painting-after-paste-undo-rtl-expected.png: Added.
* platform/mac/editing/selection/caret-painting-after-paste-undo-rtl-expected.txt: Added.
2011-01-27 Ryosuke Niwa <rniwa@webkit.org>
Unreviewed Chromium rebaseline and text expectation update.
<html>
<head>
<script src="../editing.js" language="JavaScript" type="text/JavaScript"></script>
<script>
function editingTest() {
doubleClick(0, 0);
copyCommand();
var editor = document.getElementById("editor");
editor.focus();
pasteCommand();
undoCommand();
}
</script>
</head>
<body onLoad="runEditingTest();">
<div>To run this test, copy some text, paste it into the box below, and then undo.
The caret should be positioned respecting the box's border and padding.</div><br>
<div id="editor" contenteditable=true style="direction: rtl; border:2px inset #eee; padding: 5px;">
</div>
</body>
</html>
<html>
<head>
<script src="../editing.js" language="JavaScript" type="text/JavaScript"></script>
<script>
function editingTest() {
doubleClick(0, 0);
copyCommand();
var editor = document.getElementById("editor");
editor.focus();
pasteCommand();
undoCommand();
}
</script>
</head>
<body onLoad="runEditingTest();">
<div>To run this test, copy some text, paste it into the box below, and then undo.
The caret should be positioned respecting the box's border and padding.</div><br>
<div id="editor" contenteditable=true style="border:2px inset #eee; padding: 5px;">
</div>
</body>
</html>
EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document toDOMRange:range from 0 of #text > DIV > BODY > HTML > #document to 2 of #text > DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document
EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification
EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: shouldInsertNode:#document-fragment replacingDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document givenAction:WebViewInsertActionPasted
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document toDOMRange:range from 2 of #text > DIV > BODY > HTML > #document to 2 of #text > DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderBlock {HTML} at (0,0) size 800x600
RenderBody {BODY} at (8,8) size 784x584
RenderBlock {DIV} at (0,0) size 784x36
RenderText {#text} at (0,0) size 761x36
text run at (0,0) width 477: "To run this test, copy some text, paste it into the box below, and then undo. "
text run at (477,0) width 284: "The caret should be positioned respecting the"
text run at (0,18) width 164: "box's border and padding."
RenderBlock (anonymous) at (0,36) size 784x18
RenderBR {BR} at (0,0) size 0x18
RenderBlock {DIV} at (0,54) size 784x32 [border: (2px inset #EEEEEE)]
RenderText {#text} at (0,0) size 0x0
caret: position 0 of child 4 {DIV} of body
EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document toDOMRange:range from 0 of #text > DIV > BODY > HTML > #document to 2 of #text > DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: shouldBeginEditingInDOMRange:range from 0 of DIV > BODY > HTML > #document to 1 of DIV > BODY > HTML > #document
EDITING DELEGATE: webViewDidBeginEditing:WebViewDidBeginEditingNotification
EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: shouldInsertNode:#document-fragment replacingDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document givenAction:WebViewInsertActionPasted
EDITING DELEGATE: shouldChangeSelectedDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document toDOMRange:range from 2 of #text > DIV > BODY > HTML > #document to 2 of #text > DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: shouldChangeSelectedDOMRange:(null) toDOMRange:range from 0 of DIV > BODY > HTML > #document to 0 of DIV > BODY > HTML > #document affinity:NSSelectionAffinityDownstream stillSelecting:FALSE
EDITING DELEGATE: webViewDidChangeSelection:WebViewDidChangeSelectionNotification
EDITING DELEGATE: webViewDidChange:WebViewDidChangeNotification
layer at (0,0) size 800x600
RenderView at (0,0) size 800x600
layer at (0,0) size 800x600
RenderBlock {HTML} at (0,0) size 800x600
RenderBody {BODY} at (8,8) size 784x584
RenderBlock {DIV} at (0,0) size 784x36
RenderText {#text} at (0,0) size 761x36
text run at (0,0) width 477: "To run this test, copy some text, paste it into the box below, and then undo. "
text run at (477,0) width 284: "The caret should be positioned respecting the"
text run at (0,18) width 164: "box's border and padding."
RenderBlock (anonymous) at (0,36) size 784x18
RenderBR {BR} at (0,0) size 0x18
RenderBlock {DIV} at (0,54) size 784x32 [border: (2px inset #EEEEEE)]
RenderText {#text} at (0,0) size 0x0
caret: position 0 of child 4 {DIV} of body
2011-01-25 Levi Weintraub <leviw@chromium.org>
Reviewed by Darin Adler.
Adding border and padding to the calculation of the local caret rect for RenderBoxes.
Corrected for mistake in r76625
Undo moves caret to invalid position
https://bugs.webkit.org/show_bug.cgi?id=49744
Tests: editing/selection/caret-painting-after-paste-undo-rtl.html
editing/selection/caret-painting-after-paste-undo.html
* rendering/RenderBox.cpp:
(WebCore::RenderBox::localCaretRect):
2011-01-27 Sheriff Bot <webkit.review.bot@gmail.com>
Unreviewed, rolling out r76825.
......@@ -2960,12 +2960,16 @@ IntRect RenderBox::localCaretRect(InlineBox* box, int caretOffset, int* extraWid
// They never refer to children.
// FIXME: Paint the carets inside empty blocks differently than the carets before/after elements.
// FIXME: What about border and padding?
IntRect rect(x(), y(), caretWidth, height());
bool ltr = box ? box->isLeftToRightDirection() : style()->isLeftToRightDirection();
if ((!caretOffset) ^ ltr)
rect.move(IntSize(width() - caretWidth, 0));
if (isTable()) {
if ((!caretOffset) ^ ltr)
rect.move(IntSize(width() - caretWidth, 0));
} else if ((!caretOffset) ^ ltr)
rect.move(IntSize(width() - caretWidth - borderRight() - paddingRight(), borderTop() + paddingTop()));
else
rect.move(IntSize(borderLeft() + paddingLeft(), borderTop() + paddingTop()));
if (box) {
RootInlineBox* rootBox = box->root();
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment