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

Side by Side Diff: third_party/WebKit/Source/core/paint/ReplacedPainter.cpp

Issue 2916493002: Make SelectionState enum class (Closed)
Patch Set: Created 3 years, 6 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
OLDNEW
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/ReplacedPainter.h" 5 #include "core/paint/ReplacedPainter.h"
6 6
7 #include "core/layout/LayoutReplaced.h" 7 #include "core/layout/LayoutReplaced.h"
8 #include "core/layout/api/SelectionState.h" 8 #include "core/layout/api/SelectionState.h"
9 #include "core/layout/compositing/CompositedLayerMapping.h" 9 #include "core/layout/compositing/CompositedLayerMapping.h"
10 #include "core/layout/svg/LayoutSVGRoot.h" 10 #include "core/layout/svg/LayoutSVGRoot.h"
(...skipping 57 matching lines...) Expand 10 before | Expand all | Expand 10 after
68 return; 68 return;
69 } 69 }
70 70
71 if (paint_info.phase != kPaintPhaseForeground && 71 if (paint_info.phase != kPaintPhaseForeground &&
72 paint_info.phase != kPaintPhaseSelection && 72 paint_info.phase != kPaintPhaseSelection &&
73 !layout_replaced_.CanHaveChildren() && 73 !layout_replaced_.CanHaveChildren() &&
74 paint_info.phase != kPaintPhaseClippingMask) 74 paint_info.phase != kPaintPhaseClippingMask)
75 return; 75 return;
76 76
77 if (paint_info.phase == kPaintPhaseSelection) 77 if (paint_info.phase == kPaintPhaseSelection)
78 if (layout_replaced_.GetSelectionState() == SelectionNone) 78 if (layout_replaced_.GetSelectionState() == SelectionState::kNone)
79 return; 79 return;
80 80
81 { 81 {
82 Optional<RoundedInnerRectClipper> clipper; 82 Optional<RoundedInnerRectClipper> clipper;
83 bool completely_clipped_out = false; 83 bool completely_clipped_out = false;
84 if (layout_replaced_.Style()->HasBorderRadius()) { 84 if (layout_replaced_.Style()->HasBorderRadius()) {
85 if (border_rect.IsEmpty()) { 85 if (border_rect.IsEmpty()) {
86 completely_clipped_out = true; 86 completely_clipped_out = true;
87 } else if (ShouldApplyViewportClip(layout_replaced_)) { 87 } else if (ShouldApplyViewportClip(layout_replaced_)) {
88 // Push a clip if we have a border radius, since we want to round the 88 // Push a clip if we have a border radius, since we want to round the
(...skipping 23 matching lines...) Expand all
112 } else { 112 } else {
113 layout_replaced_.PaintReplaced(paint_info, adjusted_paint_offset); 113 layout_replaced_.PaintReplaced(paint_info, adjusted_paint_offset);
114 } 114 }
115 } 115 }
116 } 116 }
117 117
118 // The selection tint never gets clipped by border-radius rounding, since we 118 // The selection tint never gets clipped by border-radius rounding, since we
119 // want it to run right up to the edges of surrounding content. 119 // want it to run right up to the edges of surrounding content.
120 bool draw_selection_tint = 120 bool draw_selection_tint =
121 paint_info.phase == kPaintPhaseForeground && 121 paint_info.phase == kPaintPhaseForeground &&
122 layout_replaced_.GetSelectionState() != SelectionNone && 122 layout_replaced_.GetSelectionState() != SelectionState::kNone &&
123 !paint_info.IsPrinting(); 123 !paint_info.IsPrinting();
124 if (draw_selection_tint && 124 if (draw_selection_tint &&
125 !LayoutObjectDrawingRecorder::UseCachedDrawingIfPossible( 125 !LayoutObjectDrawingRecorder::UseCachedDrawingIfPossible(
126 paint_info.context, layout_replaced_, DisplayItem::kSelectionTint)) { 126 paint_info.context, layout_replaced_, DisplayItem::kSelectionTint)) {
127 LayoutRect selection_painting_rect = layout_replaced_.LocalSelectionRect(); 127 LayoutRect selection_painting_rect = layout_replaced_.LocalSelectionRect();
128 selection_painting_rect.MoveBy(adjusted_paint_offset); 128 selection_painting_rect.MoveBy(adjusted_paint_offset);
129 IntRect selection_painting_int_rect = 129 IntRect selection_painting_int_rect =
130 PixelSnappedIntRect(selection_painting_rect); 130 PixelSnappedIntRect(selection_painting_rect);
131 131
132 LayoutObjectDrawingRecorder drawing_recorder( 132 LayoutObjectDrawingRecorder drawing_recorder(
(...skipping 26 matching lines...) Expand all
159 paint_rect.Unite(layout_replaced_.LocalSelectionRect()); 159 paint_rect.Unite(layout_replaced_.LocalSelectionRect());
160 paint_rect.MoveBy(adjusted_paint_offset); 160 paint_rect.MoveBy(adjusted_paint_offset);
161 161
162 if (!paint_info.GetCullRect().IntersectsCullRect(paint_rect)) 162 if (!paint_info.GetCullRect().IntersectsCullRect(paint_rect))
163 return false; 163 return false;
164 164
165 return true; 165 return true;
166 } 166 }
167 167
168 } // namespace blink 168 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/paint/PartPainter.cpp ('k') | third_party/WebKit/Source/core/paint/SVGInlineTextBoxPainter.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698