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

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

Issue 2942123002: Break LayoutObject dependency for NinePieceImagePainter (Closed)
Patch Set: Pass document explicitly 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/FieldsetPainter.h" 5 #include "core/paint/FieldsetPainter.h"
6 6
7 #include "core/layout/LayoutFieldset.h" 7 #include "core/layout/LayoutFieldset.h"
8 #include "core/paint/BoxDecorationData.h" 8 #include "core/paint/BoxDecorationData.h"
9 #include "core/paint/BoxPainter.h" 9 #include "core/paint/BoxPainter.h"
10 #include "core/paint/LayoutObjectDrawingRecorder.h" 10 #include "core/paint/LayoutObjectDrawingRecorder.h"
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
80 } else { 80 } else {
81 LayoutUnit clip_left = paint_rect.X(); 81 LayoutUnit clip_left = paint_rect.X();
82 LayoutUnit clip_width = max( 82 LayoutUnit clip_width = max(
83 static_cast<LayoutUnit>(layout_fieldset_.Style()->BorderLeftWidth()), 83 static_cast<LayoutUnit>(layout_fieldset_.Style()->BorderLeftWidth()),
84 legend->Size().Width()); 84 legend->Size().Width());
85 graphics_context.ClipOut( 85 graphics_context.ClipOut(
86 PixelSnappedIntRect(clip_left, paint_rect.Y() + legend->Location().Y(), 86 PixelSnappedIntRect(clip_left, paint_rect.Y() + legend->Location().Y(),
87 clip_width, legend->Size().Height())); 87 clip_width, legend->Size().Height()));
88 } 88 }
89 89
90 BoxPainter::PaintBorder(layout_fieldset_, paint_info, paint_rect, 90 Node* node = nullptr;
91 const LayoutObject* layout_object = &layout_fieldset_;
92 for (; layout_object && !node; layout_object = layout_object->Parent())
93 node = layout_object->GeneratingNode();
94 BoxPainter::PaintBorder(layout_fieldset_, layout_fieldset_.GetDocument(),
95 node, paint_info, paint_rect,
91 layout_fieldset_.StyleRef()); 96 layout_fieldset_.StyleRef());
92 } 97 }
93 98
94 void FieldsetPainter::PaintMask(const PaintInfo& paint_info, 99 void FieldsetPainter::PaintMask(const PaintInfo& paint_info,
95 const LayoutPoint& paint_offset) { 100 const LayoutPoint& paint_offset) {
96 if (layout_fieldset_.Style()->Visibility() != EVisibility::kVisible || 101 if (layout_fieldset_.Style()->Visibility() != EVisibility::kVisible ||
97 paint_info.phase != kPaintPhaseMask) 102 paint_info.phase != kPaintPhaseMask)
98 return; 103 return;
99 104
100 LayoutRect paint_rect = LayoutRect(paint_offset, layout_fieldset_.Size()); 105 LayoutRect paint_rect = LayoutRect(paint_offset, layout_fieldset_.Size());
(...skipping 23 matching lines...) Expand all
124 paint_rect.Expand(-x_off, LayoutUnit()); 129 paint_rect.Expand(-x_off, LayoutUnit());
125 paint_rect.Move(x_off, LayoutUnit()); 130 paint_rect.Move(x_off, LayoutUnit());
126 } 131 }
127 132
128 LayoutObjectDrawingRecorder recorder(paint_info.context, layout_fieldset_, 133 LayoutObjectDrawingRecorder recorder(paint_info.context, layout_fieldset_,
129 paint_info.phase, paint_rect); 134 paint_info.phase, paint_rect);
130 BoxPainter(layout_fieldset_).PaintMaskImages(paint_info, paint_rect); 135 BoxPainter(layout_fieldset_).PaintMaskImages(paint_info, paint_rect);
131 } 136 }
132 137
133 } // namespace blink 138 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698