OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) | 2 * Copyright (C) 1997 Martin Jones (mjones@kde.org) |
3 * (C) 1997 Torben Weis (weis@kde.org) | 3 * (C) 1997 Torben Weis (weis@kde.org) |
4 * (C) 1998 Waldo Bastian (bastian@kde.org) | 4 * (C) 1998 Waldo Bastian (bastian@kde.org) |
5 * (C) 1999 Lars Knoll (knoll@kde.org) | 5 * (C) 1999 Lars Knoll (knoll@kde.org) |
6 * (C) 1999 Antti Koivisto (koivisto@kde.org) | 6 * (C) 1999 Antti Koivisto (koivisto@kde.org) |
7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. | 7 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. |
8 * All rights reserved. | 8 * All rights reserved. |
9 * | 9 * |
10 * This library is free software; you can redistribute it and/or | 10 * This library is free software; you can redistribute it and/or |
(...skipping 399 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
410 // If the table grid is dirty, we cannot get reliable information about | 410 // If the table grid is dirty, we cannot get reliable information about |
411 // adjoining cells, so we ignore outside borders. This should not be a problem | 411 // adjoining cells, so we ignore outside borders. This should not be a problem |
412 // because it means that the table is going to recalculate the grid, relayout | 412 // because it means that the table is going to recalculate the grid, relayout |
413 // and issue a paint invalidation of its current rect, which includes any | 413 // and issue a paint invalidation of its current rect, which includes any |
414 // outside borders of this cell. | 414 // outside borders of this cell. |
415 if (!Table()->CollapseBorders() || Table()->NeedsSectionRecalc()) | 415 if (!Table()->CollapseBorders() || Table()->NeedsSectionRecalc()) |
416 return LayoutBlockFlow::LocalVisualRect(); | 416 return LayoutBlockFlow::LocalVisualRect(); |
417 | 417 |
418 bool rtl = !StyleForCellFlow().IsLeftToRightDirection(); | 418 bool rtl = !StyleForCellFlow().IsLeftToRightDirection(); |
419 LayoutUnit outline_outset(Style()->OutlineOutsetExtent()); | 419 LayoutUnit outline_outset(Style()->OutlineOutsetExtent()); |
420 LayoutUnit left(std::max(BorderHalfLeft(true), outline_outset)); | 420 LayoutUnit left(std::max(CollapsedBorderHalfLeft(true), outline_outset)); |
421 LayoutUnit right(std::max(BorderHalfRight(true), outline_outset)); | 421 LayoutUnit right(std::max(CollapsedBorderHalfRight(true), outline_outset)); |
422 LayoutUnit top(std::max(BorderHalfTop(true), outline_outset)); | 422 LayoutUnit top(std::max(CollapsedBorderHalfTop(true), outline_outset)); |
423 LayoutUnit bottom(std::max(BorderHalfBottom(true), outline_outset)); | 423 LayoutUnit bottom(std::max(CollapsedBorderHalfBottom(true), outline_outset)); |
424 if ((left && !rtl) || (right && rtl)) { | 424 if ((left && !rtl) || (right && rtl)) { |
425 if (LayoutTableCell* before = Table()->CellBefore(this)) { | 425 if (LayoutTableCell* before = Table()->CellBefore(this)) { |
426 top = std::max(top, before->BorderHalfTop(true)); | 426 top = std::max(top, before->CollapsedBorderHalfTop(true)); |
427 bottom = std::max(bottom, before->BorderHalfBottom(true)); | 427 bottom = std::max(bottom, before->CollapsedBorderHalfBottom(true)); |
428 } | 428 } |
429 } | 429 } |
430 if ((left && rtl) || (right && !rtl)) { | 430 if ((left && rtl) || (right && !rtl)) { |
431 if (LayoutTableCell* after = Table()->CellAfter(this)) { | 431 if (LayoutTableCell* after = Table()->CellAfter(this)) { |
432 top = std::max(top, after->BorderHalfTop(true)); | 432 top = std::max(top, after->CollapsedBorderHalfTop(true)); |
433 bottom = std::max(bottom, after->BorderHalfBottom(true)); | 433 bottom = std::max(bottom, after->CollapsedBorderHalfBottom(true)); |
434 } | 434 } |
435 } | 435 } |
436 if (top) { | 436 if (top) { |
437 if (LayoutTableCell* above = Table()->CellAbove(this)) { | 437 if (LayoutTableCell* above = Table()->CellAbove(this)) { |
438 left = std::max(left, above->BorderHalfLeft(true)); | 438 left = std::max(left, above->CollapsedBorderHalfLeft(true)); |
439 right = std::max(right, above->BorderHalfRight(true)); | 439 right = std::max(right, above->CollapsedBorderHalfRight(true)); |
440 } | 440 } |
441 } | 441 } |
442 if (bottom) { | 442 if (bottom) { |
443 if (LayoutTableCell* below = Table()->CellBelow(this)) { | 443 if (LayoutTableCell* below = Table()->CellBelow(this)) { |
444 left = std::max(left, below->BorderHalfLeft(true)); | 444 left = std::max(left, below->CollapsedBorderHalfLeft(true)); |
445 right = std::max(right, below->BorderHalfRight(true)); | 445 right = std::max(right, below->CollapsedBorderHalfRight(true)); |
446 } | 446 } |
447 } | 447 } |
448 | 448 |
449 LayoutRect self_visual_overflow_rect = this->SelfVisualOverflowRect(); | 449 LayoutRect self_visual_overflow_rect = this->SelfVisualOverflowRect(); |
450 LayoutPoint location( | 450 LayoutPoint location( |
451 std::max(LayoutUnit(left), -self_visual_overflow_rect.X()), | 451 std::max(LayoutUnit(left), -self_visual_overflow_rect.X()), |
452 std::max(LayoutUnit(top), -self_visual_overflow_rect.Y())); | 452 std::max(LayoutUnit(top), -self_visual_overflow_rect.Y())); |
453 return LayoutRect(-location.X(), -location.Y(), | 453 return LayoutRect(-location.X(), -location.Y(), |
454 location.X() + std::max(Size().Width() + right, | 454 location.X() + std::max(Size().Width() + right, |
455 self_visual_overflow_rect.MaxX()), | 455 self_visual_overflow_rect.MaxX()), |
(...skipping 696 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1152 include_color ? table->ResolveColor(after_color_property) : Color(), | 1152 include_color ? table->ResolveColor(after_color_property) : Color(), |
1153 kBorderPrecedenceTable)); | 1153 kBorderPrecedenceTable)); |
1154 if (!result.Exists()) | 1154 if (!result.Exists()) |
1155 return result; | 1155 return result; |
1156 } | 1156 } |
1157 | 1157 |
1158 return result; | 1158 return result; |
1159 } | 1159 } |
1160 | 1160 |
1161 LayoutUnit LayoutTableCell::BorderLeft() const { | 1161 LayoutUnit LayoutTableCell::BorderLeft() const { |
1162 return Table()->CollapseBorders() ? BorderHalfLeft(false) | 1162 return Table()->CollapseBorders() ? CollapsedBorderHalfLeft(false) |
1163 : LayoutBlockFlow::BorderLeft(); | 1163 : LayoutBlockFlow::BorderLeft(); |
1164 } | 1164 } |
1165 | 1165 |
1166 LayoutUnit LayoutTableCell::BorderRight() const { | 1166 LayoutUnit LayoutTableCell::BorderRight() const { |
1167 return Table()->CollapseBorders() ? BorderHalfRight(false) | 1167 return Table()->CollapseBorders() ? CollapsedBorderHalfRight(false) |
1168 : LayoutBlockFlow::BorderRight(); | 1168 : LayoutBlockFlow::BorderRight(); |
1169 } | 1169 } |
1170 | 1170 |
1171 LayoutUnit LayoutTableCell::BorderTop() const { | 1171 LayoutUnit LayoutTableCell::BorderTop() const { |
1172 return Table()->CollapseBorders() ? BorderHalfTop(false) | 1172 return Table()->CollapseBorders() ? CollapsedBorderHalfTop(false) |
1173 : LayoutBlockFlow::BorderTop(); | 1173 : LayoutBlockFlow::BorderTop(); |
1174 } | 1174 } |
1175 | 1175 |
1176 LayoutUnit LayoutTableCell::BorderBottom() const { | 1176 LayoutUnit LayoutTableCell::BorderBottom() const { |
1177 return Table()->CollapseBorders() ? BorderHalfBottom(false) | 1177 return Table()->CollapseBorders() ? CollapsedBorderHalfBottom(false) |
1178 : LayoutBlockFlow::BorderBottom(); | 1178 : LayoutBlockFlow::BorderBottom(); |
1179 } | 1179 } |
1180 | 1180 |
1181 // FIXME: https://bugs.webkit.org/show_bug.cgi?id=46191, make the collapsed | 1181 // FIXME: https://bugs.webkit.org/show_bug.cgi?id=46191, make the collapsed |
1182 // border drawing work with different block flow values instead of being | 1182 // border drawing work with different block flow values instead of being |
1183 // hard-coded to top-to-bottom. | 1183 // hard-coded to top-to-bottom. |
1184 LayoutUnit LayoutTableCell::BorderStart() const { | 1184 LayoutUnit LayoutTableCell::BorderStart() const { |
1185 return Table()->CollapseBorders() ? BorderHalfStart(false) | 1185 return Table()->CollapseBorders() ? CollapsedBorderHalfStart(false) |
1186 : LayoutBlockFlow::BorderStart(); | 1186 : LayoutBlockFlow::BorderStart(); |
1187 } | 1187 } |
1188 | 1188 |
1189 LayoutUnit LayoutTableCell::BorderEnd() const { | 1189 LayoutUnit LayoutTableCell::BorderEnd() const { |
1190 return Table()->CollapseBorders() ? BorderHalfEnd(false) | 1190 return Table()->CollapseBorders() ? CollapsedBorderHalfEnd(false) |
1191 : LayoutBlockFlow::BorderEnd(); | 1191 : LayoutBlockFlow::BorderEnd(); |
1192 } | 1192 } |
1193 | 1193 |
1194 LayoutUnit LayoutTableCell::BorderBefore() const { | 1194 LayoutUnit LayoutTableCell::BorderBefore() const { |
1195 return Table()->CollapseBorders() ? BorderHalfBefore(false) | 1195 return Table()->CollapseBorders() ? CollapsedBorderHalfBefore(false) |
1196 : LayoutBlockFlow::BorderBefore(); | 1196 : LayoutBlockFlow::BorderBefore(); |
1197 } | 1197 } |
1198 | 1198 |
1199 LayoutUnit LayoutTableCell::BorderAfter() const { | 1199 LayoutUnit LayoutTableCell::BorderAfter() const { |
1200 return Table()->CollapseBorders() ? BorderHalfAfter(false) | 1200 return Table()->CollapseBorders() ? CollapsedBorderHalfAfter(false) |
1201 : LayoutBlockFlow::BorderAfter(); | 1201 : LayoutBlockFlow::BorderAfter(); |
1202 } | 1202 } |
1203 | 1203 |
1204 LayoutUnit LayoutTableCell::BorderHalfLeft(bool outer) const { | 1204 LayoutUnit LayoutTableCell::CollapsedBorderHalfLeft(bool outer) const { |
1205 const ComputedStyle& style_for_cell_flow = this->StyleForCellFlow(); | 1205 const ComputedStyle& style_for_cell_flow = this->StyleForCellFlow(); |
1206 if (style_for_cell_flow.IsHorizontalWritingMode()) | 1206 if (style_for_cell_flow.IsHorizontalWritingMode()) { |
1207 return style_for_cell_flow.IsLeftToRightDirection() ? BorderHalfStart(outer) | 1207 return style_for_cell_flow.IsLeftToRightDirection() |
1208 : BorderHalfEnd(outer); | 1208 ? CollapsedBorderHalfStart(outer) |
| 1209 : CollapsedBorderHalfEnd(outer); |
| 1210 } |
1209 return style_for_cell_flow.IsFlippedBlocksWritingMode() | 1211 return style_for_cell_flow.IsFlippedBlocksWritingMode() |
1210 ? BorderHalfAfter(outer) | 1212 ? CollapsedBorderHalfAfter(outer) |
1211 : BorderHalfBefore(outer); | 1213 : CollapsedBorderHalfBefore(outer); |
1212 } | 1214 } |
1213 | 1215 |
1214 LayoutUnit LayoutTableCell::BorderHalfRight(bool outer) const { | 1216 LayoutUnit LayoutTableCell::CollapsedBorderHalfRight(bool outer) const { |
1215 const ComputedStyle& style_for_cell_flow = this->StyleForCellFlow(); | 1217 const ComputedStyle& style_for_cell_flow = this->StyleForCellFlow(); |
1216 if (style_for_cell_flow.IsHorizontalWritingMode()) | 1218 if (style_for_cell_flow.IsHorizontalWritingMode()) { |
1217 return style_for_cell_flow.IsLeftToRightDirection() | 1219 return style_for_cell_flow.IsLeftToRightDirection() |
1218 ? BorderHalfEnd(outer) | 1220 ? CollapsedBorderHalfEnd(outer) |
1219 : BorderHalfStart(outer); | 1221 : CollapsedBorderHalfStart(outer); |
| 1222 } |
1220 return style_for_cell_flow.IsFlippedBlocksWritingMode() | 1223 return style_for_cell_flow.IsFlippedBlocksWritingMode() |
1221 ? BorderHalfBefore(outer) | 1224 ? CollapsedBorderHalfBefore(outer) |
1222 : BorderHalfAfter(outer); | 1225 : CollapsedBorderHalfAfter(outer); |
1223 } | 1226 } |
1224 | 1227 |
1225 LayoutUnit LayoutTableCell::BorderHalfTop(bool outer) const { | 1228 LayoutUnit LayoutTableCell::CollapsedBorderHalfTop(bool outer) const { |
1226 const ComputedStyle& style_for_cell_flow = this->StyleForCellFlow(); | 1229 const ComputedStyle& style_for_cell_flow = this->StyleForCellFlow(); |
1227 if (style_for_cell_flow.IsHorizontalWritingMode()) | 1230 if (style_for_cell_flow.IsHorizontalWritingMode()) { |
1228 return style_for_cell_flow.IsFlippedBlocksWritingMode() | 1231 return style_for_cell_flow.IsFlippedBlocksWritingMode() |
1229 ? BorderHalfAfter(outer) | 1232 ? CollapsedBorderHalfAfter(outer) |
1230 : BorderHalfBefore(outer); | 1233 : CollapsedBorderHalfBefore(outer); |
1231 return style_for_cell_flow.IsLeftToRightDirection() ? BorderHalfStart(outer) | 1234 } |
1232 : BorderHalfEnd(outer); | 1235 return style_for_cell_flow.IsLeftToRightDirection() |
| 1236 ? CollapsedBorderHalfStart(outer) |
| 1237 : CollapsedBorderHalfEnd(outer); |
1233 } | 1238 } |
1234 | 1239 |
1235 LayoutUnit LayoutTableCell::BorderHalfBottom(bool outer) const { | 1240 LayoutUnit LayoutTableCell::CollapsedBorderHalfBottom(bool outer) const { |
1236 const ComputedStyle& style_for_cell_flow = this->StyleForCellFlow(); | 1241 const ComputedStyle& style_for_cell_flow = this->StyleForCellFlow(); |
1237 if (style_for_cell_flow.IsHorizontalWritingMode()) | 1242 if (style_for_cell_flow.IsHorizontalWritingMode()) { |
1238 return style_for_cell_flow.IsFlippedBlocksWritingMode() | 1243 return style_for_cell_flow.IsFlippedBlocksWritingMode() |
1239 ? BorderHalfBefore(outer) | 1244 ? CollapsedBorderHalfBefore(outer) |
1240 : BorderHalfAfter(outer); | 1245 : CollapsedBorderHalfAfter(outer); |
1241 return style_for_cell_flow.IsLeftToRightDirection() ? BorderHalfEnd(outer) | 1246 } |
1242 : BorderHalfStart(outer); | 1247 return style_for_cell_flow.IsLeftToRightDirection() |
| 1248 ? CollapsedBorderHalfEnd(outer) |
| 1249 : CollapsedBorderHalfStart(outer); |
1243 } | 1250 } |
1244 | 1251 |
1245 LayoutUnit LayoutTableCell::BorderHalfStart(bool outer) const { | 1252 LayoutUnit LayoutTableCell::CollapsedBorderHalfStart(bool outer) const { |
1246 CollapsedBorderValue border = | 1253 CollapsedBorderValue border = |
1247 ComputeCollapsedStartBorder(kDoNotIncludeBorderColor); | 1254 ComputeCollapsedStartBorder(kDoNotIncludeBorderColor); |
1248 if (border.Exists()) { | 1255 if (border.Exists()) { |
1249 return LayoutUnit( | 1256 return LayoutUnit( |
1250 (border.Width() + | 1257 (border.Width() + |
1251 ((StyleForCellFlow().IsLeftToRightDirection() ^ outer) ? 1 : 0)) / | 1258 ((StyleForCellFlow().IsLeftToRightDirection() ^ outer) ? 1 : 0)) / |
1252 2); // Give the extra pixel to top and left. | 1259 2); // Give the extra pixel to top and left. |
1253 } | 1260 } |
1254 return LayoutUnit(); | 1261 return LayoutUnit(); |
1255 } | 1262 } |
1256 | 1263 |
1257 LayoutUnit LayoutTableCell::BorderHalfEnd(bool outer) const { | 1264 LayoutUnit LayoutTableCell::CollapsedBorderHalfEnd(bool outer) const { |
1258 CollapsedBorderValue border = | 1265 CollapsedBorderValue border = |
1259 ComputeCollapsedEndBorder(kDoNotIncludeBorderColor); | 1266 ComputeCollapsedEndBorder(kDoNotIncludeBorderColor); |
1260 if (border.Exists()) { | 1267 if (border.Exists()) { |
1261 return LayoutUnit( | 1268 return LayoutUnit( |
1262 (border.Width() + | 1269 (border.Width() + |
1263 ((StyleForCellFlow().IsLeftToRightDirection() ^ outer) ? 0 : 1)) / | 1270 ((StyleForCellFlow().IsLeftToRightDirection() ^ outer) ? 0 : 1)) / |
1264 2); | 1271 2); |
1265 } | 1272 } |
1266 return LayoutUnit(); | 1273 return LayoutUnit(); |
1267 } | 1274 } |
1268 | 1275 |
1269 LayoutUnit LayoutTableCell::BorderHalfBefore(bool outer) const { | 1276 LayoutUnit LayoutTableCell::CollapsedBorderHalfBefore(bool outer) const { |
1270 CollapsedBorderValue border = | 1277 CollapsedBorderValue border = |
1271 ComputeCollapsedBeforeBorder(kDoNotIncludeBorderColor); | 1278 ComputeCollapsedBeforeBorder(kDoNotIncludeBorderColor); |
1272 if (border.Exists()) { | 1279 if (border.Exists()) { |
1273 return LayoutUnit( | 1280 return LayoutUnit( |
1274 (border.Width() + | 1281 (border.Width() + |
1275 ((StyleForCellFlow().IsFlippedBlocksWritingMode() ^ outer) ? 0 : 1)) / | 1282 ((StyleForCellFlow().IsFlippedBlocksWritingMode() ^ outer) ? 0 : 1)) / |
1276 2); // Give the extra pixel to top and left. | 1283 2); // Give the extra pixel to top and left. |
1277 } | 1284 } |
1278 return LayoutUnit(); | 1285 return LayoutUnit(); |
1279 } | 1286 } |
1280 | 1287 |
1281 LayoutUnit LayoutTableCell::BorderHalfAfter(bool outer) const { | 1288 LayoutUnit LayoutTableCell::CollapsedBorderHalfAfter(bool outer) const { |
1282 CollapsedBorderValue border = | 1289 CollapsedBorderValue border = |
1283 ComputeCollapsedAfterBorder(kDoNotIncludeBorderColor); | 1290 ComputeCollapsedAfterBorder(kDoNotIncludeBorderColor); |
1284 if (border.Exists()) { | 1291 if (border.Exists()) { |
1285 return LayoutUnit( | 1292 return LayoutUnit( |
1286 (border.Width() + | 1293 (border.Width() + |
1287 ((StyleForCellFlow().IsFlippedBlocksWritingMode() ^ outer) ? 1 : 0)) / | 1294 ((StyleForCellFlow().IsFlippedBlocksWritingMode() ^ outer) ? 1 : 0)) / |
1288 2); | 1295 2); |
1289 } | 1296 } |
1290 return LayoutUnit(); | 1297 return LayoutUnit(); |
1291 } | 1298 } |
1292 | 1299 |
1293 void LayoutTableCell::Paint(const PaintInfo& paint_info, | 1300 void LayoutTableCell::Paint(const PaintInfo& paint_info, |
1294 const LayoutPoint& paint_offset) const { | 1301 const LayoutPoint& paint_offset) const { |
1295 TableCellPainter(*this).Paint(paint_info, paint_offset); | 1302 TableCellPainter(*this).Paint(paint_info, paint_offset); |
1296 } | 1303 } |
1297 | 1304 |
1298 static void AddBorderStyle(LayoutTable::CollapsedBorderValues& border_values, | 1305 static void AddBorderStyle(LayoutTable::CollapsedBorderValues& border_values, |
1299 CollapsedBorderValue border_value) { | 1306 CollapsedBorderValue border_value) { |
1300 if (!border_value.IsVisible()) | 1307 if (!border_value.IsVisible()) |
1301 return; | 1308 return; |
1302 size_t count = border_values.size(); | 1309 size_t count = border_values.size(); |
1303 for (size_t i = 0; i < count; ++i) { | 1310 for (size_t i = 0; i < count; ++i) { |
1304 if (border_values[i].IsSameIgnoringColor(border_value)) | 1311 if (border_values[i].IsSameIgnoringColor(border_value)) |
1305 return; | 1312 return; |
1306 } | 1313 } |
1307 border_values.push_back(border_value); | 1314 border_values.push_back(border_value); |
1308 } | 1315 } |
1309 | 1316 |
1310 void LayoutTableCell::CollectBorderValues( | 1317 void LayoutTableCell::CollectCollapsedBorderValues( |
1311 LayoutTable::CollapsedBorderValues& border_values) { | 1318 LayoutTable::CollapsedBorderValues& border_values) { |
1312 CollapsedBorderValues new_values( | 1319 CollapsedBorderValues new_values( |
1313 *this, ComputeCollapsedStartBorder(), ComputeCollapsedEndBorder(), | 1320 *this, ComputeCollapsedStartBorder(), ComputeCollapsedEndBorder(), |
1314 ComputeCollapsedBeforeBorder(), ComputeCollapsedAfterBorder()); | 1321 ComputeCollapsedBeforeBorder(), ComputeCollapsedAfterBorder()); |
1315 | 1322 |
1316 bool changed = false; | 1323 bool changed = false; |
1317 if (!new_values.StartBorder().IsVisible() && | 1324 if (!new_values.StartBorder().IsVisible() && |
1318 !new_values.EndBorder().IsVisible() && | 1325 !new_values.EndBorder().IsVisible() && |
1319 !new_values.BeforeBorder().IsVisible() && | 1326 !new_values.BeforeBorder().IsVisible() && |
1320 !new_values.AfterBorder().IsVisible()) { | 1327 !new_values.AfterBorder().IsVisible()) { |
(...skipping 28 matching lines...) Expand all Loading... |
1349 .SlowSetPaintingLayerNeedsRepaintAndInvalidateDisplayItemClient( | 1356 .SlowSetPaintingLayerNeedsRepaintAndInvalidateDisplayItemClient( |
1350 *this, kPaintInvalidationStyleChange); | 1357 *this, kPaintInvalidationStyleChange); |
1351 } | 1358 } |
1352 | 1359 |
1353 AddBorderStyle(border_values, new_values.StartBorder()); | 1360 AddBorderStyle(border_values, new_values.StartBorder()); |
1354 AddBorderStyle(border_values, new_values.EndBorder()); | 1361 AddBorderStyle(border_values, new_values.EndBorder()); |
1355 AddBorderStyle(border_values, new_values.BeforeBorder()); | 1362 AddBorderStyle(border_values, new_values.BeforeBorder()); |
1356 AddBorderStyle(border_values, new_values.AfterBorder()); | 1363 AddBorderStyle(border_values, new_values.AfterBorder()); |
1357 } | 1364 } |
1358 | 1365 |
1359 void LayoutTableCell::SortBorderValues( | 1366 void LayoutTableCell::SortCollapsedBorderValues( |
1360 LayoutTable::CollapsedBorderValues& border_values) { | 1367 LayoutTable::CollapsedBorderValues& border_values) { |
1361 std::sort(border_values.begin(), border_values.end(), CompareBorders); | 1368 std::sort(border_values.begin(), border_values.end(), CompareBorders); |
1362 } | 1369 } |
1363 | 1370 |
1364 void LayoutTableCell::PaintBoxDecorationBackground( | 1371 void LayoutTableCell::PaintBoxDecorationBackground( |
1365 const PaintInfo& paint_info, | 1372 const PaintInfo& paint_info, |
1366 const LayoutPoint& paint_offset) const { | 1373 const LayoutPoint& paint_offset) const { |
1367 TableCellPainter(*this).PaintBoxDecorationBackground(paint_info, | 1374 TableCellPainter(*this).PaintBoxDecorationBackground(paint_info, |
1368 paint_offset); | 1375 paint_offset); |
1369 } | 1376 } |
(...skipping 108 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1478 } | 1485 } |
1479 | 1486 |
1480 bool LayoutTableCell::HasLineIfEmpty() const { | 1487 bool LayoutTableCell::HasLineIfEmpty() const { |
1481 if (GetNode() && HasEditableStyle(*GetNode())) | 1488 if (GetNode() && HasEditableStyle(*GetNode())) |
1482 return true; | 1489 return true; |
1483 | 1490 |
1484 return LayoutBlock::HasLineIfEmpty(); | 1491 return LayoutBlock::HasLineIfEmpty(); |
1485 } | 1492 } |
1486 | 1493 |
1487 } // namespace blink | 1494 } // namespace blink |
OLD | NEW |