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( | 54 LayoutRect bounds(m_svgInlineTextBox.topLeft() + paintOffset, |
55 m_svgInlineTextBox.locationIncludingFlipping() + paintOffset, | 55 m_svgInlineTextBox.size()); |
56 m_svgInlineTextBox.size()); | |
57 if (hasShadow(paintInfo, style)) | 56 if (hasShadow(paintInfo, style)) |
58 bounds.expand(style.textShadow()->rectOutsetsIncludingOriginal()); | 57 bounds.expand(style.textShadow()->rectOutsetsIncludingOriginal()); |
59 if (includeSelectionRect) { | 58 if (includeSelectionRect) { |
60 bounds.unite(m_svgInlineTextBox.localSelectionRect( | 59 bounds.unite(m_svgInlineTextBox.localSelectionRect( |
61 m_svgInlineTextBox.start(), | 60 m_svgInlineTextBox.start(), |
62 m_svgInlineTextBox.start() + m_svgInlineTextBox.len())); | 61 m_svgInlineTextBox.start() + m_svgInlineTextBox.len())); |
63 } | 62 } |
64 return FloatRect(bounds); | 63 return FloatRect(bounds); |
65 } | 64 } |
66 | 65 |
(...skipping 579 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
646 } | 645 } |
647 FloatRect fragmentRect = m_svgInlineTextBox.selectionRectForTextFragment( | 646 FloatRect fragmentRect = m_svgInlineTextBox.selectionRectForTextFragment( |
648 fragment, textMatchInfo.startPosition, textMatchInfo.endPosition, | 647 fragment, textMatchInfo.startPosition, textMatchInfo.endPosition, |
649 style); | 648 style); |
650 paintInfo.context.setFillColor(color); | 649 paintInfo.context.setFillColor(color); |
651 paintInfo.context.fillRect(fragmentRect); | 650 paintInfo.context.fillRect(fragmentRect); |
652 } | 651 } |
653 } | 652 } |
654 | 653 |
655 } // namespace blink | 654 } // namespace blink |
OLD | NEW |