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

Side by Side Diff: Source/core/rendering/RenderListItem.cpp

Issue 16402019: Remove clips where we can show that they are unnecessary. (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: add TestExpectations for layout test changes due to crbug.com/249478 Created 7 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 /** 1 /**
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org)
3 * (C) 1999 Antti Koivisto (koivisto@kde.org) 3 * (C) 1999 Antti Koivisto (koivisto@kde.org)
4 * Copyright (C) 2003, 2004, 2005, 2006, 2010 Apple Inc. All rights reserved. 4 * Copyright (C) 2003, 2004, 2005, 2006, 2010 Apple Inc. All rights reserved.
5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net) 5 * Copyright (C) 2006 Andrew Wellington (proton@wiretapped.net)
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 357 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 newLogicalVisualOverflowRect.setWidth(markerLogicalLeft + m_ marker->logicalWidth() - newLogicalVisualOverflowRect.x()); 368 newLogicalVisualOverflowRect.setWidth(markerLogicalLeft + m_ marker->logicalWidth() - newLogicalVisualOverflowRect.x());
369 if (box == root) 369 if (box == root)
370 adjustOverflow = true; 370 adjustOverflow = true;
371 } 371 }
372 if (markerLogicalLeft + m_marker->logicalWidth() > newLogicalLay outOverflowRect.maxX()) { 372 if (markerLogicalLeft + m_marker->logicalWidth() > newLogicalLay outOverflowRect.maxX()) {
373 newLogicalLayoutOverflowRect.setWidth(markerLogicalLeft + m_ marker->logicalWidth() - newLogicalLayoutOverflowRect.x()); 373 newLogicalLayoutOverflowRect.setWidth(markerLogicalLeft + m_ marker->logicalWidth() - newLogicalLayoutOverflowRect.x());
374 if (box == root) 374 if (box == root)
375 adjustOverflow = true; 375 adjustOverflow = true;
376 } 376 }
377 box->setOverflowFromLogicalRects(newLogicalLayoutOverflowRect, n ewLogicalVisualOverflowRect, lineTop, lineBottom); 377 box->setOverflowFromLogicalRects(newLogicalLayoutOverflowRect, n ewLogicalVisualOverflowRect, lineTop, lineBottom);
378 378
379 if (box->boxModelObject()->hasSelfPaintingLayer()) 379 if (box->boxModelObject()->hasSelfPaintingLayer())
380 hitSelfPaintingLayer = true; 380 hitSelfPaintingLayer = true;
381 } 381 }
382 } 382 }
383 383
384 if (adjustOverflow) { 384 if (adjustOverflow) {
385 LayoutRect markerRect(markerLogicalLeft + lineOffset, blockOffset, m _marker->width(), m_marker->height()); 385 LayoutRect markerRect(markerLogicalLeft + lineOffset, blockOffset, m _marker->width(), m_marker->height());
386 if (!style()->isHorizontalWritingMode()) 386 if (!style()->isHorizontalWritingMode())
387 markerRect = markerRect.transposedRect(); 387 markerRect = markerRect.transposedRect();
388 RenderBox* o = m_marker; 388 RenderBox* o = m_marker;
389 bool propagateVisualOverflow = true; 389 bool propagateVisualOverflow = true;
390 bool propagateLayoutOverflow = true; 390 bool propagateLayoutOverflow = true;
391 do { 391 do {
392 o = o->parentBox(); 392 o = o->parentBox();
393 if (o->hasOverflowClip())
394 propagateVisualOverflow = false;
395 if (o->isRenderBlock()) { 393 if (o->isRenderBlock()) {
396 if (propagateVisualOverflow) 394 if (propagateVisualOverflow)
397 toRenderBlock(o)->addVisualOverflow(markerRect); 395 toRenderBlock(o)->addVisualOverflow(markerRect, VisualOv erflowClippedByContentsClip);
398 if (propagateLayoutOverflow) 396 if (propagateLayoutOverflow)
399 toRenderBlock(o)->addLayoutOverflow(markerRect); 397 toRenderBlock(o)->addLayoutOverflow(markerRect);
400 } 398 }
401 if (o->hasOverflowClip()) 399 if (o->hasOverflowClip()) {
400 propagateVisualOverflow = false;
402 propagateLayoutOverflow = false; 401 propagateLayoutOverflow = false;
402 }
403 if (o->hasSelfPaintingLayer()) 403 if (o->hasSelfPaintingLayer())
404 propagateVisualOverflow = false; 404 propagateVisualOverflow = false;
405 markerRect.moveBy(-o->location()); 405 markerRect.moveBy(-o->location());
406 } while (o != this && propagateVisualOverflow && propagateLayoutOver flow); 406 } while (o != this && propagateVisualOverflow && propagateLayoutOver flow);
407 } 407 }
408 } 408 }
409 } 409 }
410 410
411 void RenderListItem::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset) 411 void RenderListItem::paint(PaintInfo& paintInfo, const LayoutPoint& paintOffset)
412 { 412 {
(...skipping 90 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 // assume that all the following ones have too. 503 // assume that all the following ones have too.
504 // This gives us the opportunity to stop here and avoid 504 // This gives us the opportunity to stop here and avoid
505 // marking the same nodes again. 505 // marking the same nodes again.
506 break; 506 break;
507 } 507 }
508 item->updateValue(); 508 item->updateValue();
509 } 509 }
510 } 510 }
511 511
512 } // namespace WebCore 512 } // namespace WebCore
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698