Title: [179070] branches/safari-600.1.4.15-branch/Source/WebCore
Revision
179070
Author
[email protected]
Date
2015-01-24 12:16:32 -0800 (Sat, 24 Jan 2015)

Log Message

Merged r175260.  rdar://problem/19432679

Modified Paths

Diff

Modified: branches/safari-600.1.4.15-branch/Source/WebCore/ChangeLog (179069 => 179070)


--- branches/safari-600.1.4.15-branch/Source/WebCore/ChangeLog	2015-01-24 19:55:58 UTC (rev 179069)
+++ branches/safari-600.1.4.15-branch/Source/WebCore/ChangeLog	2015-01-24 20:16:32 UTC (rev 179070)
@@ -1,5 +1,25 @@
 2015-01-24  David Kilzer  <[email protected]>
 
+        Merge r175260.
+
+    2014-10-28  David Hyatt  <[email protected]>
+
+        Selection gap painting is ugly for ruby bases.
+        https://bugs.webkit.org/show_bug.cgi?id=138136
+
+        Reviewed by Dean Jackson.
+
+        * rendering/RenderBlock.cpp:
+        (WebCore::RenderBlock::selectionGaps):
+        For ruby bases don't fill to the end of the block (in the block direction),
+        since ideographic baselines push that end below the text baseline.
+
+        (WebCore::RenderBlock::blockSelectionGaps):
+        * rendering/RenderBlockFlow.cpp:
+        Skip ruby bases for block selection gap filling.
+
+2015-01-24  David Kilzer  <[email protected]>
+
         Merge r175976.
 
     2014-11-11  Eric Carlson  <[email protected]>

Modified: branches/safari-600.1.4.15-branch/Source/WebCore/rendering/RenderBlock.cpp (179069 => 179070)


--- branches/safari-600.1.4.15-branch/Source/WebCore/rendering/RenderBlock.cpp	2015-01-24 19:55:58 UTC (rev 179069)
+++ branches/safari-600.1.4.15-branch/Source/WebCore/rendering/RenderBlock.cpp	2015-01-24 20:16:32 UTC (rev 179070)
@@ -1965,7 +1965,7 @@
         result = blockSelectionGaps(rootBlock, rootBlockPhysicalPosition, offsetFromRootBlock, lastLogicalTop, lastLogicalLeft, lastLogicalRight, cache, paintInfo);
 
     // Go ahead and fill the vertical gap all the way to the bottom of our block if the selection extends past our block.
-    if (&rootBlock == this && (selectionState() != SelectionBoth && selectionState() != SelectionEnd)) {
+    if (&rootBlock == this && (selectionState() != SelectionBoth && selectionState() != SelectionEnd) && !isRubyBase()) {
         result.uniteCenter(blockSelectionGap(rootBlock, rootBlockPhysicalPosition, offsetFromRootBlock,
             lastLogicalTop, lastLogicalLeft, lastLogicalRight, logicalHeight(), cache, paintInfo));
     }
@@ -2010,7 +2010,7 @@
         }
 
         bool paintsOwnSelection = curr->shouldPaintSelectionGaps() || curr->isTable(); // FIXME: Eventually we won't special-case table like this.
-        bool fillBlockGaps = paintsOwnSelection || (curr->canBeSelectionLeaf() && childState != SelectionNone);
+        bool fillBlockGaps = !isRubyBase() && (paintsOwnSelection || (curr->canBeSelectionLeaf() && childState != SelectionNone));
         if (fillBlockGaps) {
             // We need to fill the vertical gap above this object.
             if (childState == SelectionEnd || childState == SelectionInside) {
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to