OLD | NEW |
1 // Copyright 2014 The Chromium Authors. All rights reserved. | 1 // Copyright 2014 The Chromium Authors. All rights reserved. |
2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
4 | 4 |
5 #include "config.h" | 5 #include "config.h" |
6 #include "core/paint/InlineTextBoxPainter.h" | 6 #include "core/paint/InlineTextBoxPainter.h" |
7 | 7 |
8 #include "core/editing/CompositionUnderline.h" | 8 #include "core/editing/CompositionUnderline.h" |
9 #include "core/editing/CompositionUnderlineRangeFilter.h" | 9 #include "core/editing/CompositionUnderlineRangeFilter.h" |
10 #include "core/editing/Editor.h" | 10 #include "core/editing/Editor.h" |
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
43 return &gTextBlobCache->add(&inlineTextBox, nullptr).storedValue->value; | 43 return &gTextBlobCache->add(&inlineTextBox, nullptr).storedValue->value; |
44 } | 44 } |
45 | 45 |
46 static bool paintsMarkerHighlights(const LayoutObject& layoutObject) | 46 static bool paintsMarkerHighlights(const LayoutObject& layoutObject) |
47 { | 47 { |
48 return layoutObject.node() && layoutObject.document().markers().hasMarkers(l
ayoutObject.node()); | 48 return layoutObject.node() && layoutObject.document().markers().hasMarkers(l
ayoutObject.node()); |
49 } | 49 } |
50 | 50 |
51 void InlineTextBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint&
paintOffset) | 51 void InlineTextBoxPainter::paint(const PaintInfo& paintInfo, const LayoutPoint&
paintOffset) |
52 { | 52 { |
53 if (m_inlineTextBox.isLineBreak() || !paintInfo.shouldPaintWithinRoot(&m_inl
ineTextBox.layoutObject()) || m_inlineTextBox.layoutObject().style()->visibility
() != VISIBLE | 53 if (m_inlineTextBox.isLineBreak() || !paintInfo.shouldPaintWithinRoot(&m_inl
ineTextBox.layoutObject()) || m_inlineTextBox.layoutObject().style()->visibility
() != VISIBLE || m_inlineTextBox.truncation() == cFullTruncation || !m_inlineTex
tBox.len()) |
54 || m_inlineTextBox.truncation() == cFullTruncation || paintInfo.phase ==
PaintPhaseOutline || !m_inlineTextBox.len()) | |
55 return; | 54 return; |
56 | 55 |
57 ASSERT(paintInfo.phase != PaintPhaseSelfOutline && paintInfo.phase != PaintP
haseChildOutlines); | 56 ASSERT(paintInfo.phase != PaintPhaseOutline && paintInfo.phase != PaintPhase
SelfOutline && paintInfo.phase != PaintPhaseChildOutlines); |
58 | 57 |
59 LayoutRect logicalVisualOverflow = m_inlineTextBox.logicalOverflowRect(); | 58 LayoutRect logicalVisualOverflow = m_inlineTextBox.logicalOverflowRect(); |
60 LayoutUnit logicalStart = logicalVisualOverflow.x() + (m_inlineTextBox.isHor
izontal() ? paintOffset.x() : paintOffset.y()); | 59 LayoutUnit logicalStart = logicalVisualOverflow.x() + (m_inlineTextBox.isHor
izontal() ? paintOffset.x() : paintOffset.y()); |
61 LayoutUnit logicalExtent = logicalVisualOverflow.width(); | 60 LayoutUnit logicalExtent = logicalVisualOverflow.width(); |
62 | 61 |
63 LayoutUnit paintEnd = m_inlineTextBox.isHorizontal() ? paintInfo.rect.maxX()
: paintInfo.rect.maxY(); | 62 LayoutUnit paintEnd = m_inlineTextBox.isHorizontal() ? paintInfo.rect.maxX()
: paintInfo.rect.maxY(); |
64 LayoutUnit paintStart = m_inlineTextBox.isHorizontal() ? paintInfo.rect.x()
: paintInfo.rect.y(); | 63 LayoutUnit paintStart = m_inlineTextBox.isHorizontal() ? paintInfo.rect.x()
: paintInfo.rect.y(); |
65 | 64 |
66 // We round the y-axis to ensure consistent line heights. | 65 // We round the y-axis to ensure consistent line heights. |
67 LayoutPoint adjustedPaintOffset = LayoutPoint(paintOffset.x(), paintOffset.y
().round()); | 66 LayoutPoint adjustedPaintOffset = LayoutPoint(paintOffset.x(), paintOffset.y
().round()); |
(...skipping 761 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
829 LayoutPoint textOrigin(boxOrigin.x(), boxOrigin.y() + font.fontMetri
cs().ascent()); | 828 LayoutPoint textOrigin(boxOrigin.x(), boxOrigin.y() + font.fontMetri
cs().ascent()); |
830 TextPainter textPainter(pt, font, run, textOrigin, boxRect, m_inline
TextBox.isHorizontal()); | 829 TextPainter textPainter(pt, font, run, textOrigin, boxRect, m_inline
TextBox.isHorizontal()); |
831 | 830 |
832 textPainter.paint(sPos, ePos, length, textStyle, 0); | 831 textPainter.paint(sPos, ePos, length, textStyle, 0); |
833 } | 832 } |
834 } | 833 } |
835 } | 834 } |
836 | 835 |
837 | 836 |
838 } // namespace blink | 837 } // namespace blink |
OLD | NEW |