Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(144)

Side by Side Diff: Source/core/rendering/RenderBlockLineLayout.cpp

Issue 529753002: Word-Spacing in InlineBox RTL scenario not to ignore if first character is space (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: TestExpectations update Created 6 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « Source/core/rendering/InlineFlowBox.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ight reserved. 3 * Copyright (C) 2003, 2004, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc. All r ight reserved.
4 * Copyright (C) 2010 Google Inc. All rights reserved. 4 * Copyright (C) 2010 Google Inc. All rights reserved.
5 * 5 *
6 * This library is free software; you can redistribute it and/or 6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Library General Public 7 * modify it under the terms of the GNU Library General Public
8 * License as published by the Free Software Foundation; either 8 * License as published by the Free Software Foundation; either
9 * version 2 of the License, or (at your option) any later version. 9 * version 2 of the License, or (at your option) any later version.
10 * 10 *
(...skipping 550 matching lines...) Expand 10 before | Expand all | Expand 10 after
561 bool needsWordSpacing; 561 bool needsWordSpacing;
562 562
563 if (firstRun && firstRun->m_object->isReplaced()) { 563 if (firstRun && firstRun->m_object->isReplaced()) {
564 RenderBox* renderBox = toRenderBox(firstRun->m_object); 564 RenderBox* renderBox = toRenderBox(firstRun->m_object);
565 updateLogicalInlinePositions(this, lineLogicalLeft, lineLogicalRight, av ailableLogicalWidth, isFirstLine, shouldIndentText, renderBox->logicalHeight()); 565 updateLogicalInlinePositions(this, lineLogicalLeft, lineLogicalRight, av ailableLogicalWidth, isFirstLine, shouldIndentText, renderBox->logicalHeight());
566 } 566 }
567 567
568 computeInlineDirectionPositionsForSegment(lineBox, lineInfo, textAlign, line LogicalLeft, availableLogicalWidth, firstRun, trailingSpaceRun, textBoxDataMap, verticalPositionCache, wordMeasurements); 568 computeInlineDirectionPositionsForSegment(lineBox, lineInfo, textAlign, line LogicalLeft, availableLogicalWidth, firstRun, trailingSpaceRun, textBoxDataMap, verticalPositionCache, wordMeasurements);
569 // The widths of all runs are now known. We can now place every inline box ( and 569 // The widths of all runs are now known. We can now place every inline box ( and
570 // compute accurate widths for the inline flow boxes). 570 // compute accurate widths for the inline flow boxes).
571 needsWordSpacing = false; 571 needsWordSpacing = lineBox->isLeftToRightDirection() ? false: true;
572 lineBox->placeBoxesInInlineDirection(lineLogicalLeft, needsWordSpacing); 572 lineBox->placeBoxesInInlineDirection(lineLogicalLeft, needsWordSpacing);
573 } 573 }
574 574
575 BidiRun* RenderBlockFlow::computeInlineDirectionPositionsForSegment(RootInlineBo x* lineBox, const LineInfo& lineInfo, ETextAlign textAlign, float& logicalLeft, 575 BidiRun* RenderBlockFlow::computeInlineDirectionPositionsForSegment(RootInlineBo x* lineBox, const LineInfo& lineInfo, ETextAlign textAlign, float& logicalLeft,
576 float& availableLogicalWidth, BidiRun* firstRun, BidiRun* trailingSpaceRun, GlyphOverflowAndFallbackFontsMap& textBoxDataMap, VerticalPositionCache& vertica lPositionCache, 576 float& availableLogicalWidth, BidiRun* firstRun, BidiRun* trailingSpaceRun, GlyphOverflowAndFallbackFontsMap& textBoxDataMap, VerticalPositionCache& vertica lPositionCache,
577 WordMeasurements& wordMeasurements) 577 WordMeasurements& wordMeasurements)
578 { 578 {
579 bool needsWordSpacing = true; 579 bool needsWordSpacing = true;
580 float totalLogicalWidth = lineBox->getFlowSpacingLogicalWidth().toFloat(); 580 float totalLogicalWidth = lineBox->getFlowSpacingLogicalWidth().toFloat();
581 unsigned expansionOpportunityCount = 0; 581 unsigned expansionOpportunityCount = 0;
(...skipping 1455 matching lines...) Expand 10 before | Expand all | Expand 10 after
2037 float logicalLeft = logicalLeftOffsetForLine(logicalHeight(), false).toFloat (); 2037 float logicalLeft = logicalLeftOffsetForLine(logicalHeight(), false).toFloat ();
2038 float availableLogicalWidth = logicalRightOffsetForLine(logicalHeight(), fal se) - logicalLeft; 2038 float availableLogicalWidth = logicalRightOffsetForLine(logicalHeight(), fal se) - logicalLeft;
2039 updateLogicalWidthForAlignment(textAlign, 0, 0, logicalLeft, totalLogicalWid th, availableLogicalWidth, 0); 2039 updateLogicalWidthForAlignment(textAlign, 0, 0, logicalLeft, totalLogicalWid th, availableLogicalWidth, 0);
2040 2040
2041 if (!style()->isLeftToRightDirection()) 2041 if (!style()->isLeftToRightDirection())
2042 return logicalWidth() - logicalLeft; 2042 return logicalWidth() - logicalLeft;
2043 return logicalLeft; 2043 return logicalLeft;
2044 } 2044 }
2045 2045
2046 } 2046 }
OLDNEW
« no previous file with comments | « Source/core/rendering/InlineFlowBox.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698