Title: [179663] branches/safari-600.5-branch/Source/WebCore
Revision
179663
Author
[email protected]
Date
2015-02-04 19:40:49 -0800 (Wed, 04 Feb 2015)

Log Message

Merge r179070. rdar://problem/19451292

Modified Paths

Diff

Modified: branches/safari-600.5-branch/Source/WebCore/ChangeLog (179662 => 179663)


--- branches/safari-600.5-branch/Source/WebCore/ChangeLog	2015-02-05 03:40:46 UTC (rev 179662)
+++ branches/safari-600.5-branch/Source/WebCore/ChangeLog	2015-02-05 03:40:49 UTC (rev 179663)
@@ -1,3 +1,23 @@
+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-02-04  Matthew Hanson  <[email protected]>
 
         Merge r178490. rdar://problem/19687156

Modified: branches/safari-600.5-branch/Source/WebCore/rendering/RenderBlock.cpp (179662 => 179663)


--- branches/safari-600.5-branch/Source/WebCore/rendering/RenderBlock.cpp	2015-02-05 03:40:46 UTC (rev 179662)
+++ branches/safari-600.5-branch/Source/WebCore/rendering/RenderBlock.cpp	2015-02-05 03:40:49 UTC (rev 179663)
@@ -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