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 "core/paint/SVGInlineTextBoxPainter.h" | 5 #include "core/paint/SVGInlineTextBoxPainter.h" |
6 | 6 |
7 #include "core/editing/Editor.h" | 7 #include "core/editing/Editor.h" |
8 #include "core/editing/markers/DocumentMarkerController.h" | 8 #include "core/editing/markers/DocumentMarkerController.h" |
9 #include "core/editing/markers/RenderedDocumentMarker.h" | 9 #include "core/editing/markers/RenderedDocumentMarker.h" |
10 #include "core/frame/LocalFrame.h" | 10 #include "core/frame/LocalFrame.h" |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
44 static bool hasShadow(const PaintInfo& paintInfo, const ComputedStyle& style) { | 44 static bool hasShadow(const PaintInfo& paintInfo, const ComputedStyle& style) { |
45 // Text shadows are disabled when printing. http://crbug.com/258321 | 45 // Text shadows are disabled when printing. http://crbug.com/258321 |
46 return style.textShadow() && !paintInfo.isPrinting(); | 46 return style.textShadow() && !paintInfo.isPrinting(); |
47 } | 47 } |
48 | 48 |
49 FloatRect SVGInlineTextBoxPainter::boundsForDrawingRecorder( | 49 FloatRect SVGInlineTextBoxPainter::boundsForDrawingRecorder( |
50 const PaintInfo& paintInfo, | 50 const PaintInfo& paintInfo, |
51 const ComputedStyle& style, | 51 const ComputedStyle& style, |
52 const LayoutPoint& paintOffset, | 52 const LayoutPoint& paintOffset, |
53 bool includeSelectionRect) const { | 53 bool includeSelectionRect) const { |
54 LayoutRect bounds(m_svgInlineTextBox.topLeft() + paintOffset, | 54 LayoutRect bounds(m_svgInlineTextBox.location() + paintOffset, |
55 m_svgInlineTextBox.size()); | 55 m_svgInlineTextBox.size()); |
56 if (hasShadow(paintInfo, style)) | 56 if (hasShadow(paintInfo, style)) |
57 bounds.expand(style.textShadow()->rectOutsetsIncludingOriginal()); | 57 bounds.expand(style.textShadow()->rectOutsetsIncludingOriginal()); |
58 if (includeSelectionRect) { | 58 if (includeSelectionRect) { |
59 bounds.unite(m_svgInlineTextBox.localSelectionRect( | 59 bounds.unite(m_svgInlineTextBox.localSelectionRect( |
60 m_svgInlineTextBox.start(), | 60 m_svgInlineTextBox.start(), |
61 m_svgInlineTextBox.start() + m_svgInlineTextBox.len())); | 61 m_svgInlineTextBox.start() + m_svgInlineTextBox.len())); |
62 } | 62 } |
63 return FloatRect(bounds); | 63 return FloatRect(bounds); |
64 } | 64 } |
(...skipping 580 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
645 } | 645 } |
646 FloatRect fragmentRect = m_svgInlineTextBox.selectionRectForTextFragment( | 646 FloatRect fragmentRect = m_svgInlineTextBox.selectionRectForTextFragment( |
647 fragment, textMatchInfo.startPosition, textMatchInfo.endPosition, | 647 fragment, textMatchInfo.startPosition, textMatchInfo.endPosition, |
648 style); | 648 style); |
649 paintInfo.context.setFillColor(color); | 649 paintInfo.context.setFillColor(color); |
650 paintInfo.context.fillRect(fragmentRect); | 650 paintInfo.context.fillRect(fragmentRect); |
651 } | 651 } |
652 } | 652 } |
653 | 653 |
654 } // namespace blink | 654 } // namespace blink |
OLD | NEW |