2006-05-14 Sam Weinig <sam.weinig@gmail.com>
authorap <ap@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 14 May 2006 16:39:44 +0000 (16:39 +0000)
committerap <ap@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Sun, 14 May 2006 16:39:44 +0000 (16:39 +0000)
        Reviewed by Hyatt, landed by ap.

        Fix for <http://bugzilla.opendarwin.org/show_bug.cgi?id=8387>
        "border-left/padding-Left do not show up on multiline rtl inline boxes"

        Test: fast/inline/inline-borders-with-bidi-override.html: added

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::determineSpacingForFlowBoxes):

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@14365 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/fast/inline/inline-borders-with-bidi-override-expected.checksum [new file with mode: 0644]
LayoutTests/fast/inline/inline-borders-with-bidi-override-expected.png [new file with mode: 0644]
LayoutTests/fast/inline/inline-borders-with-bidi-override-expected.txt [new file with mode: 0644]
LayoutTests/fast/inline/inline-borders-with-bidi-override.html [new file with mode: 0644]
WebCore/ChangeLog
WebCore/rendering/InlineFlowBox.cpp

index 767019562f88d46004e5c97dc07a8d7631b9b61a..517ae94b6a6ef5e5cceae5390cab47ec4657fa35 100644 (file)
@@ -1,3 +1,15 @@
+2006-05-14  Sam Weinig  <sam.weinig@gmail.com>
+
+        Reviewed by Hyatt, landed by ap.
+
+        Test for <http://bugzilla.opendarwin.org/show_bug.cgi?id=8387>
+        "border-left/padding-Left do not show up on multiline rtl inline boxes"
+
+        * fast/inline/inline-borders-with-bidi-override.html: Added.
+        * fast/inline/inline-borders-with-bidi-override-expected.txt: Added.
+        * fast/inline/inline-borders-with-bidi-override-expected.png: Added.
+        * fast/inline/inline-borders-with-bidi-override-expected.checksum: Added.
+
 2006-05-13  Mitz Pettel  <opendarwin.org@mitzpettel.com>
 
         Reviewed by Darin, landed by ap.
diff --git a/LayoutTests/fast/inline/inline-borders-with-bidi-override-expected.checksum b/LayoutTests/fast/inline/inline-borders-with-bidi-override-expected.checksum
new file mode 100644 (file)
index 0000000..c2a5735
--- /dev/null
@@ -0,0 +1 @@
+a065d17a90b875c40c83fa9e9ca6fd0c
\ No newline at end of file
diff --git a/LayoutTests/fast/inline/inline-borders-with-bidi-override-expected.png b/LayoutTests/fast/inline/inline-borders-with-bidi-override-expected.png
new file mode 100644 (file)
index 0000000..c8c847a
Binary files /dev/null and b/LayoutTests/fast/inline/inline-borders-with-bidi-override-expected.png differ
diff --git a/LayoutTests/fast/inline/inline-borders-with-bidi-override-expected.txt b/LayoutTests/fast/inline/inline-borders-with-bidi-override-expected.txt
new file mode 100644 (file)
index 0000000..be083fd
--- /dev/null
@@ -0,0 +1,71 @@
+layer at (0,0) size 785x710
+  RenderCanvas at (0,0) size 785x600
+layer at (0,0) size 785x710
+  RenderBlock {HTML} at (0,0) size 785x710
+    RenderBody {BODY} at (8,16) size 769x686
+      RenderBlock {P} at (0,0) size 769x36
+        RenderText {#text} at (0,0) size 751x36
+          text run at (0,0) width 751: "There should be a SPAN in the middle of all four paragraphs that has padding, a green border, and a margin on the left,"
+          text run at (0,18) width 363: "and padding, an orange border, and a margin on the right."
+      RenderBlock {H1} at (0,52) size 769x18
+        RenderText {#text} at (0,0) size 89x18
+          text run at (0,0) width 89: "Left-to-Right"
+      RenderBlock {DIV} at (0,80) size 769x284 [border: (1px solid #000000)]
+        RenderBlock {P} at (6,22) size 757x32
+          RenderText {#text} at (0,7) size 125x18
+            text run at (0,7) width 125: "Lorem ipsum dolor "
+          RenderText {#text} at (346,7) size 332x18
+            text run at (346,7) width 332: "adipisicing elit, sed do eiusmod tempor incididunt ut."
+        RenderBlock {P} at (6,70) size 757x192
+          RenderText {#text} at (0,7) size 732x50
+            text run at (0,7) width 588: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut "
+            text run at (588,7) width 144: "labore et dolore magna"
+            text run at (0,39) width 430: "aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco "
+          RenderText {#text} at (659,103) size 715x82
+            text run at (659,103) width 52: "sit amet,"
+            text run at (0,135) width 509: "consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore "
+            text run at (509,135) width 206: "magna aliqua. Ut enim ad minim"
+            text run at (0,167) width 401: "veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip."
+      RenderBlock {H1} at (0,374) size 769x18
+        RenderText {#text} at (0,0) size 89x18
+          text run at (0,0) width 89: "Right-to-Left"
+      RenderBlock {DIV} at (0,402) size 769x284 [border: (1px solid #000000)]
+        RenderBlock {P} at (6,22) size 757x32
+          RenderText {#text} at (632,7) size 125x18
+            text run at (632,7) width 125 RTL override: "Lorem ipsum dolor "
+          RenderText {#text} at (79,7) size 332x18
+            text run at (79,7) width 332 RTL override: "adipisicing elit, sed do eiusmod tempor incididunt ut."
+        RenderBlock {P} at (6,70) size 757x192
+          RenderText {#text} at (25,7) size 732x50
+            text run at (25,7) width 144 RTL override: "labore et dolore magna"
+            text run at (169,7) width 588 RTL override: "Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut "
+            text run at (327,39) width 430 RTL override: "aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco "
+          RenderText {#text} at (46,103) size 715x82
+            text run at (46,103) width 52 RTL override: "sit amet,"
+            text run at (42,135) width 206 RTL override: "magna aliqua. Ut enim ad minim"
+            text run at (248,135) width 509 RTL override: "consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore "
+            text run at (356,167) width 401 RTL override: "veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip."
+layer at (14,118) size 186x20
+  RenderInline (relative positioned) {SPAN} at (0,0) size 186x20 [border: (1px solid #0000FF) (10px solid #FFA500) (1px solid #0000FF) (10px solid #008000)]
+    RenderText {#text} at (170,7) size 131x18
+      text run at (170,7) width 131: "sit amet, consectetur "
+layer at (14,166) size 748x84
+  RenderInline (relative positioned) {SPAN} at (0,0) size 748x84 [border: (1px solid #0000FF) (10px solid #FFA500) (1px solid #0000FF) (10px solid #008000)]
+    RenderText {#text} at (475,39) size 748x82
+      text run at (475,39) width 235: "laboris nisi ut aliquip ex ea commodo"
+      text run at (0,71) width 324: "consequat. Duis aute irure dolor in reprehenderit in "
+      text run at (324,71) width 424: "voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur"
+      text run at (0,103) width 145: "sint occaecat cupidatat "
+      text run at (145,103) width 469: "non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. "
+layer at (14,440) size 186x20
+  RenderInline (relative positioned) {SPAN} at (0,0) size 186x20 [border: (1px solid #0000FF) (10px solid #FFA500) (1px solid #0000FF) (10px solid #008000)]
+    RenderText {#text} at (456,7) size 131x18
+      text run at (456,7) width 131 RTL override: "sit amet, consectetur "
+layer at (14,488) size 748x84
+  RenderInline (relative positioned) {SPAN} at (0,0) size 748x84 [border: (1px solid #0000FF) (10px solid #FFA500) (1px solid #0000FF) (10px solid #008000)]
+    RenderText {#text} at (47,39) size 748x82
+      text run at (47,39) width 235 RTL override: "laboris nisi ut aliquip ex ea commodo"
+      text run at (9,71) width 424 RTL override: "voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur"
+      text run at (433,71) width 324 RTL override: "consequat. Duis aute irure dolor in reprehenderit in "
+      text run at (143,103) width 469 RTL override: "non proident, sunt in culpa qui officia deserunt mollit anim id est laborum. "
+      text run at (612,103) width 145 RTL override: "sint occaecat cupidatat "
diff --git a/LayoutTests/fast/inline/inline-borders-with-bidi-override.html b/LayoutTests/fast/inline/inline-borders-with-bidi-override.html
new file mode 100644 (file)
index 0000000..9595a7f
--- /dev/null
@@ -0,0 +1,83 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
+    "http://www.w3.org/TR/html4/strict.dtd">
+<html>
+<head>
+  <style>
+    h1 {
+        font-weight: bold;
+        font-size: 1em;
+    }
+    div {
+        border: 1px solid black;
+        padding: 5px;
+    }
+    
+    div p { line-height: 2em; }
+    #ltor p {
+        direction: ltr;
+        unicode-bidi: normal;
+    }
+    #rtol p {
+        direction: rtl;
+        unicode-bidi: bidi-override;
+    }
+    span {
+        display: inline;
+        position: relative;
+        margin: 0 10px 0 25px;
+        padding: 0 25px 0 10px;
+        border: 1px solid blue;
+        border-left: 10px solid green;
+        border-right: 10px solid orange;
+    }
+  </style>
+</head>
+<body>
+  <p>There should be a SPAN in the middle of all four paragraphs that has padding, a green border, and a margin on the left,
+     and padding, an orange border, and a margin on the right.</p>
+
+  <h1>Left-to-Right</h1>
+  <div id="ltor">
+    <p> 
+      Lorem ipsum dolor 
+      <span>
+        sit amet, consectetur
+      </span>
+      adipisicing elit, sed do eiusmod tempor incididunt ut.
+    </p>
+    <p> 
+      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
+      labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
+      <span>
+        laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
+        voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
+        non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+      </span>
+      sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore
+      magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip.
+    </p>
+  </div>
+  
+  <h1>Right-to-Left</h1>
+  <div id="rtol">
+    <p> 
+      Lorem ipsum dolor 
+      <span>
+        sit amet, consectetur
+      </span>
+      adipisicing elit, sed do eiusmod tempor incididunt ut.
+    </p>
+    <p> 
+      Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut
+      labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco
+      <span>
+        laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in
+        voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat
+        non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
+      </span>
+      sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore
+      magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip.
+    </p>
+  </div>
+</body>
+</html>
index 5c27bfa79e4dda280707b6b697c7bcadfbf2c9d8..1d9aa038aa37285c82a689b2ef6a9d1685dfff81 100644 (file)
@@ -1,3 +1,15 @@
+2006-05-14  Sam Weinig  <sam.weinig@gmail.com>
+
+        Reviewed by Hyatt, landed by ap.
+
+        Fix for <http://bugzilla.opendarwin.org/show_bug.cgi?id=8387>
+        "border-left/padding-Left do not show up on multiline rtl inline boxes"
+
+        Test: fast/inline/inline-borders-with-bidi-override.html: added
+
+        * rendering/InlineFlowBox.cpp:
+        (WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
+
 2006-05-14  Steve Falkenburg  <sfalken@apple.com>
 
         Fix the Windows build the rest of the way
index c754c76057b310535d3618d9846fe6362292bea6..97bcf3fff220e82253435aac4cc2e0e1bae4a2a4 100644 (file)
@@ -213,14 +213,11 @@ void InlineFlowBox::determineSpacingForFlowBoxes(bool lastLine, RenderObject* en
         if (!flow->lastLineBox()->isConstructed()) {
             if (ltr) {
                 if (!nextLineBox() &&
-                    ((lastLine && !object()->continuation()) || nextOnLineExists()
-                     || onEndChain(endObject)))
+                    ((lastLine && !object()->continuation()) || nextOnLineExists() || onEndChain(endObject)))
                     includeRightEdge = true;
-            }
-            else {
-                if ((!prevLineBox() || !prevLineBox()->isConstructed()) &&
-                    ((lastLine && !object()->continuation()) ||
-                     prevOnLineExists() || onEndChain(endObject)))
+            } else {
+                if ((!prevLineBox() || prevLineBox()->isConstructed()) &&
+                    ((lastLine && !object()->continuation()) || prevOnLineExists() || onEndChain(endObject)))
                     includeLeftEdge = true;
             }
         }