Commit 9cefa2c1 authored by leviw@chromium.org's avatar leviw@chromium.org
Browse files

2011-01-19 Levi Weintraub <leviw@google.com>

        Reviewed by Darin Adler.

        Re-committing this with the proper expected results.

        Changing RenderText::localCaretRect to clip to its containing block's logicalLeft and
        logicalRightLayoutOverflow instead of simply using logicalLeft and logicalRight, as this
        resulted in the caret being placed incorrectly in overflowing editable IFrame content.

        Long lines in non-white-space-pre editable documents show cursor in wrong place
        https://bugs.webkit.org/show_bug.cgi?id=48132

        * editing/selection/caret-painting-in-overflowing-autowrap-content.html: Added.
        * editing/selection/resources/iframe-positioning-caret-at-end.html: Added.
        * platform/mac/editing/selection/caret-painting-in-overflowing-autowrap-content-expected.checksum: Added.
        * platform/mac/editing/selection/caret-painting-in-overflowing-autowrap-content-expected.png: Added.
        * platform/mac/editing/selection/caret-painting-in-overflowing-autowrap-content-expected.txt: Added.
2011-01-19  Levi Weintraub  <leviw@google.com>

        Reviewed by Darin Adler.

        Re-committing this with the proper expected results.

        Changing RenderText::localCaretRect to clip to its containing block's logicalLeft and
        logicalRightLayoutOverflow instead of simply using logicalLeft and logicalRight, as this
        resulted in the caret being placed incorrectly in overflowing editable IFrame content.

        Long lines in non-white-space-pre editable documents show cursor in wrong place
        https://bugs.webkit.org/show_bug.cgi?id=48132

        Test: editing/selection/caret-painting-in-overflowing-autowrap-content.html

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


git-svn-id: http://svn.webkit.org/repository/webkit/trunk@76187 268f45cc-cd09-0410-ab3c-d52691b4dbfc
parent 3c5560ef
2011-01-19 Levi Weintraub <leviw@google.com>
Reviewed by Darin Adler.
Re-committing this with the proper expected results.
Changing RenderText::localCaretRect to clip to its containing block's logicalLeft and
logicalRightLayoutOverflow instead of simply using logicalLeft and logicalRight, as this
resulted in the caret being placed incorrectly in overflowing editable IFrame content.
Long lines in non-white-space-pre editable documents show cursor in wrong place
https://bugs.webkit.org/show_bug.cgi?id=48132
* editing/selection/caret-painting-in-overflowing-autowrap-content.html: Added.
* editing/selection/resources/iframe-positioning-caret-at-end.html: Added.
* platform/mac/editing/selection/caret-painting-in-overflowing-autowrap-content-expected.checksum: Added.
* platform/mac/editing/selection/caret-painting-in-overflowing-autowrap-content-expected.png: Added.
* platform/mac/editing/selection/caret-painting-in-overflowing-autowrap-content-expected.txt: Added.
2011-01-18 Darin Adler <darin@apple.com>
 
Reviewed by Geoffrey Garen.
......
<html>
<body>
<iframe src="resources/iframe-positioning-caret-at-end.html" style="border:1px solid black; width:300px; height:100px" id="iframe" onLoad="this.focus()"></iframe>
<p>The caret should be able to be positioned at the end of the editable content in the IFrame.</p>
</body></html>
\ No newline at end of file
<html><head></head>
<script>
function runTest() {
document.designMode = 'on';
var selection = window.getSelection();
selection.setPosition(document.body, 1);
window.scrollTo(1000, 0);
};
</script>
<body onLoad="runTest();">aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXXX</body>
</html>
\ No newline at end of file
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 784x576
RenderBlock (anonymous) at (0,0) size 784x102
RenderPartObject {IFRAME} at (0,0) size 302x102 [border: (1px solid #000000)]
layer at (0,0) size 569x85
RenderView at (0,0) size 300x85
layer at (0,0) size 300x85
RenderBlock {HTML} at (0,0) size 300x85
RenderBody {BODY} at (8,8) size 284x69
RenderText {#text} at (0,0) size 561x18
text run at (0,0) width 561: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaXXX"
RenderText {#text} at (0,0) size 0x0
RenderBlock {P} at (0,118) size 784x18
RenderText {#text} at (0,0) size 558x18
text run at (0,0) width 558: "The caret should be able to be positioned at the end of the editable content in the IFrame."
2011-01-19 Levi Weintraub <leviw@google.com>
Reviewed by Darin Adler.
Re-committing this with the proper expected results.
Changing RenderText::localCaretRect to clip to its containing block's logicalLeft and
logicalRightLayoutOverflow instead of simply using logicalLeft and logicalRight, as this
resulted in the caret being placed incorrectly in overflowing editable IFrame content.
Long lines in non-white-space-pre editable documents show cursor in wrong place
https://bugs.webkit.org/show_bug.cgi?id=48132
Test: editing/selection/caret-painting-in-overflowing-autowrap-content.html
* rendering/RenderText.cpp:
(WebCore::RenderText::localCaretRect):
2011-01-18 MORITA Hajime <morrita@google.com>
 
Reviewed by David Levin.
......@@ -510,11 +510,11 @@ IntRect RenderText::localCaretRect(InlineBox* inlineBox, int caretOffset, int* e
int leftEdge;
int rightEdge;
if (style()->autoWrap()) {
leftEdge = cb->logicalLeft();
rightEdge = cb->logicalRight();
leftEdge = cb->logicalLeftLayoutOverflow();
rightEdge = cb->logicalRightLayoutOverflow();
} else {
leftEdge = min(cb->logicalLeft(), rootLeft);
rightEdge = max(cb->logicalRight(), rootRight);
leftEdge = min(cb->logicalLeftLayoutOverflow(), rootLeft);
rightEdge = max(cb->logicalRightLayoutOverflow(), rootRight);
}
bool rightAligned = false;
......
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