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

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

Issue 2507893002: Fix painting background for composited table cells in a non-composited row. (Closed)
Patch Set: Add test expectations. Created 4 years, 1 month 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 2016 The Chromium Authors. All rights reserved. 1 // Copyright 2016 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/TablePaintInvalidator.h" 5 #include "core/paint/TablePaintInvalidator.h"
6 6
7 #include "core/layout/LayoutTable.h" 7 #include "core/layout/LayoutTable.h"
8 #include "core/layout/LayoutTableCell.h" 8 #include "core/layout/LayoutTableCell.h"
9 #include "core/layout/LayoutTableCol.h" 9 #include "core/layout/LayoutTableCol.h"
10 #include "core/layout/LayoutTableRow.h" 10 #include "core/layout/LayoutTableRow.h"
(...skipping 62 matching lines...) Expand 10 before | Expand all | Expand 10 after
73 columnGroup->backgroundChangedSinceLastPaintInvalidation()) || 73 columnGroup->backgroundChangedSinceLastPaintInvalidation()) ||
74 (column && 74 (column &&
75 column->backgroundChangedSinceLastPaintInvalidation())) { 75 column->backgroundChangedSinceLastPaintInvalidation())) {
76 sectionInvalidator 76 sectionInvalidator
77 .slowSetPaintingLayerNeedsRepaintAndInvalidateDisplayItemClient( 77 .slowSetPaintingLayerNeedsRepaintAndInvalidateDisplayItemClient(
78 *cell, PaintInvalidationStyleChange); 78 *cell, PaintInvalidationStyleChange);
79 invalidated = true; 79 invalidated = true;
80 } 80 }
81 } 81 }
82 if ((!invalidated || row->hasSelfPaintingLayer()) && 82 if ((!invalidated || row->hasSelfPaintingLayer()) &&
83 row->backgroundChangedSinceLastPaintInvalidation()) 83 row->backgroundChangedSinceLastPaintInvalidation()) {
84 ObjectPaintInvalidator(*row) 84 ObjectPaintInvalidator invalidator(*row);
85 invalidator
85 .slowSetPaintingLayerNeedsRepaintAndInvalidateDisplayItemClient( 86 .slowSetPaintingLayerNeedsRepaintAndInvalidateDisplayItemClient(
86 *cell, PaintInvalidationStyleChange); 87 *cell, PaintInvalidationStyleChange);
88 if (cell->usesCompositedCellDisplayItemClients()) {
89 cell->createCompositedCellDisplayItemClients();
wkorman 2016/11/16 20:15:46 I've punted on using mutable or getMutableForPaint
Xianzhu 2016/11/16 20:39:03 This can be simplified if you have LayoutTableCell
wkorman 2016/11/16 21:42:45 Done.
90 invalidator.invalidateDisplayItemClient(
91 *cell->rowBackgroundDisplayItemClient(),
92 PaintInvalidationStyleChange);
93 }
94 }
87 } 95 }
88 } 96 }
89 } 97 }
90 98
91 return reason; 99 return reason;
92 } 100 }
93 101
94 } // namespace blink 102 } // namespace blink
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698