Title: [148658] trunk
- Revision
- 148658
- Author
- [email protected]
- Date
- 2013-04-17 21:25:46 -0700 (Wed, 17 Apr 2013)
Log Message
[css3-text] Rendering -webkit-hanging value for text-indent from css3-text
https://bugs.webkit.org/show_bug.cgi?id=114663
Patch by Jaehun Lim <[email protected]> on 2013-04-17
Reviewed by Beth Dakin.
This patch is the rendering part to support hanging value for text-indent.
"hanging" means "Inverts which lines are affected."
It's prefixed and guarded by CSS3_TEXT flag.
Spec: http://dev.w3.org/csswg/css-text/#text-indent
Source/WebCore:
Test: fast/css3-text/css3-text-indent/text-indent-each-line-hanging.html
* rendering/RenderBlockLineLayout.cpp:
(WebCore::requiresIndent): Inverted the return value when "-webkit-hanging" is applied.
LayoutTests:
Renamed and updated the existing testcases.
* fast/css3-text/css3-text-indent/text-indent-each-line-hanging-expected.html: Renamed from LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-expected.html
* fast/css3-text/css3-text-indent/text-indent-each-line-hanging.html: Renamed from LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line.html.
Modified Paths
Added Paths
Removed Paths
Diff
Modified: trunk/LayoutTests/ChangeLog (148657 => 148658)
--- trunk/LayoutTests/ChangeLog 2013-04-18 04:02:27 UTC (rev 148657)
+++ trunk/LayoutTests/ChangeLog 2013-04-18 04:25:46 UTC (rev 148658)
@@ -1,3 +1,21 @@
+2013-04-17 Jaehun Lim <[email protected]>
+
+ [css3-text] Rendering -webkit-hanging value for text-indent from css3-text
+ https://bugs.webkit.org/show_bug.cgi?id=114663
+
+ Reviewed by Beth Dakin.
+
+ This patch is the rendering part to support hanging value for text-indent.
+ "hanging" means "Inverts which lines are affected."
+ It's prefixed and guarded by CSS3_TEXT flag.
+
+ Spec: http://dev.w3.org/csswg/css-text/#text-indent
+
+ Renamed and updated the existing testcases.
+
+ * fast/css3-text/css3-text-indent/text-indent-each-line-hanging-expected.html: Renamed from LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-expected.html
+ * fast/css3-text/css3-text-indent/text-indent-each-line-hanging.html: Renamed from LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line.html.
+
2013-04-17 James Craig <[email protected]>
AX: aria-level does not override implicit level on h1, h2, etc
Deleted: trunk/LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-expected.html (148657 => 148658)
--- trunk/LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-expected.html 2013-04-18 04:02:27 UTC (rev 148657)
+++ trunk/LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-expected.html 2013-04-18 04:25:46 UTC (rev 148658)
@@ -1,28 +0,0 @@
-<html>
-<head>
- <title>[css3-text] text-indent</title>
- <style>
- div { width:80px; font: 10px Ahem; background-color:lightgray; }
- .normal { text-indent: 4em; }
- .indent { color: blue; }
- .eachline { padding-left:4em; }
- </style>
-</head
-<body>
-<div class="normal">
-<span class="indent">xxxx</span><br>xxxx<br>xxxx
-</div>
-<br>
-<div class="normal">
-<span class="indent">xxxx</span> xxxx xxxx
-</div>
-<br>
-<div class="normal">
-<span class="indent">xxxx</span><br><span class="indent eachline">xxxx</span><br><span class="indent eachline">xxxx</span>
-</div>
-<br>
-<div class="normal">
-<span class="indent">xxxx</span> xxxx<br><span class="indent eachline">xxxx</span>
-</div>
-</body>
-</html>
Added: trunk/LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-hanging-expected.html (0 => 148658)
--- trunk/LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-hanging-expected.html (rev 0)
+++ trunk/LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-hanging-expected.html 2013-04-18 04:25:46 UTC (rev 148658)
@@ -0,0 +1,42 @@
+<html>
+<head>
+ <title>[css3-text] text-indent</title>
+ <style>
+ div { width:80px; font: 10px Ahem; background-color:lightgray; }
+ .indent { color: blue; padding-left:4em; }
+ </style>
+</head>
+<body>
+<div>
+<span class="indent">xxxx</span><br>xxxx<br>xxxx
+</div>
+<br>
+<div>
+<span class="indent">xxxx</span> xxxx xxxx
+</div>
+<br>
+<div>
+<span class="indent">xxxx</span><br><span class="indent">xxxx</span><br><span class="indent">xxxx</span>
+</div>
+<br>
+<div>
+<span class="indent">xxxx</span> xxxx<br><span class="indent">xxxx</span>
+</div>
+<br>
+<div>
+xxxx<br><span class="indent">xxxx</span><br><span class="indent">xxxx</span>
+</div>
+<br>
+<div>
+xxxx <span class="indent">xxxx</span> <span class="indent">xxxx</span>
+</div>
+<br>
+<div>
+xxxx<br>xxxx<br>xxxx
+</div>
+<br>
+<div>
+xxxx <span class="indent">xxxx</span><br>xxxx
+</div>
+</body>
+</html>
Copied: trunk/LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-hanging.html (from rev 148657, trunk/LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line.html) (0 => 148658)
--- trunk/LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-hanging.html (rev 0)
+++ trunk/LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line-hanging.html 2013-04-18 04:25:46 UTC (rev 148658)
@@ -0,0 +1,59 @@
+<html>
+<head>
+ <title>[css3-text] text-indent</title>
+ <style>
+ div { width:80px; font: 10px Ahem; background-color:lightgray; }
+ .normal { text-indent: 4em; }
+ .eachline { text-indent: 4em -webkit-each-line; }
+ .hanging { text-indent: 4em -webkit-hanging; }
+ .eachlinehanging { text-indent: 4em -webkit-each-line -webkit-hanging; }
+ .indent { color: blue; }
+ </style>
+</head
+<body>
+<!--
+all black boxes should be left-aligned.
+all blue boxes should be right-aligned.
+-->
+
+<!-- normal text-indent -->
+<div class="normal">
+<span class="indent">xxxx</span> xxxx<br>xxxx
+</div>
+<br>
+<!-- -webkit-each-line with a soft wrap break -->
+<div class="eachline">
+<span class="indent">xxxx</span> xxxx xxxx
+</div>
+<br>
+<!-- -webkit-each-line with a forced line break -->
+<div class="eachline">
+<span class="indent">xxxx</span><br><span class="indent">xxxx</span><br><span class="indent">xxxx</span>
+</div>
+<br>
+<!-- -webkit-each-line with a soft wrap break and a forced line break -->
+<div class="eachline">
+<span class="indent">xxxx</span> xxxx<br><span class="indent">xxxx</span>
+</div>
+<br>
+<!-- normal text-indent with -webkit-hanging -->
+<div class="hanging">
+xxxx <span class="indent">xxxx</span><br><span class="indent">xxxx</span>
+</div>
+<br>
+<!-- -webkit-each-line and -webkit-hanging with a soft wrap break -->
+<div class="eachlinehanging">
+xxxx <span class="indent">xxxx</span> <span class="indent">xxxx</span>
+</div>
+<br>
+<!-- -webkit-each-line and -webkit-hanging with a forced line break -->
+<div class="eachlinehanging">
+xxxx<br>xxxx<br>xxxx
+</div>
+<br>
+<!-- -webkit-each-line and -webkit-hanging with a soft wrap break and a forced line break -->
+<div class="eachlinehanging">
+xxxx <span class="indent">xxxx</span><br>xxxx
+</div>
+</body>
+</html>
Deleted: trunk/LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line.html (148657 => 148658)
--- trunk/LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line.html 2013-04-18 04:02:27 UTC (rev 148657)
+++ trunk/LayoutTests/fast/css3-text/css3-text-indent/text-indent-each-line.html 2013-04-18 04:25:46 UTC (rev 148658)
@@ -1,37 +0,0 @@
-<html>
-<head>
- <title>[css3-text] text-indent</title>
- <style>
- div { width:80px; font: 10px Ahem; background-color:lightgray; }
- .normal { text-indent: 4em; }
- .eachline { width:80px; text-indent: 4em -webkit-each-line; }
- .indent { color: blue; }
- </style>
-</head
-<body>
-<!--
-all black boxes should be left-aligned.
-all blue boxes should be right-aligned.
--->
-
-<!-- normal text-indent -->
-<div class="normal">
-<span class="indent">xxxx</span><br>xxxx<br>xxxx
-</div>
-<br>
-<!-- -webkit-each-line with a soft wrap break -->
-<div class="eachline">
-<span class="indent">xxxx</span> xxxx xxxx
-</div>
-<br>
-<!-- -webkit-each-line with a forced line break -->
-<div class="eachline">
-<span class="indent">xxxx</span><br><span class="indent">xxxx</span><br><span class="indent">xxxx</span>
-</div>
-<br>
-<!-- -webkit-each-line with a soft wrap break and a forced line break -->
-<div class="eachline">
-<span class="indent">xxxx</span> xxxx<br><span class="indent">xxxx</span>
-</div>
-</body>
-</html>
Modified: trunk/Source/WebCore/ChangeLog (148657 => 148658)
--- trunk/Source/WebCore/ChangeLog 2013-04-18 04:02:27 UTC (rev 148657)
+++ trunk/Source/WebCore/ChangeLog 2013-04-18 04:25:46 UTC (rev 148658)
@@ -1,3 +1,21 @@
+2013-04-17 Jaehun Lim <[email protected]>
+
+ [css3-text] Rendering -webkit-hanging value for text-indent from css3-text
+ https://bugs.webkit.org/show_bug.cgi?id=114663
+
+ Reviewed by Beth Dakin.
+
+ This patch is the rendering part to support hanging value for text-indent.
+ "hanging" means "Inverts which lines are affected."
+ It's prefixed and guarded by CSS3_TEXT flag.
+
+ Spec: http://dev.w3.org/csswg/css-text/#text-indent
+
+ Test: fast/css3-text/css3-text-indent/text-indent-each-line-hanging.html
+
+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::requiresIndent): Inverted the return value when "-webkit-hanging" is applied.
+
2013-04-17 James Craig <[email protected]>
AX: aria-level does not override implicit level on h1, h2, etc
Modified: trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp (148657 => 148658)
--- trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp 2013-04-18 04:02:27 UTC (rev 148657)
+++ trunk/Source/WebCore/rendering/RenderBlockLineLayout.cpp 2013-04-18 04:25:46 UTC (rev 148658)
@@ -995,16 +995,20 @@
static IndentTextOrNot requiresIndent(bool isFirstLine, bool isAfterHardLineBreak, RenderStyle* style)
{
+ IndentTextOrNot shouldIndentText = DoNotIndentText;
if (isFirstLine)
- return IndentText;
+ shouldIndentText = IndentText;
#if ENABLE(CSS3_TEXT)
- if (isAfterHardLineBreak && style->textIndentLine() == TextIndentEachLine)
- return IndentText;
+ else if (isAfterHardLineBreak && style->textIndentLine() == TextIndentEachLine)
+ shouldIndentText = IndentText;
+
+ if (style->textIndentType() == TextIndentHanging)
+ shouldIndentText = shouldIndentText == IndentText ? DoNotIndentText : IndentText;
#else
UNUSED_PARAM(isAfterHardLineBreak);
UNUSED_PARAM(style);
#endif
- return DoNotIndentText;
+ return shouldIndentText;
}
static void updateLogicalInlinePositions(RenderBlock* block, float& lineLogicalLeft, float& lineLogicalRight, float& availableLogicalWidth, bool firstLine, IndentTextOrNot shouldIndentText, LayoutUnit boxLogicalHeight)
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes