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

Side by Side Diff: third_party/WebKit/Source/core/layout/LayoutBlockFlow.h

Issue 1974953002: Descend into node with overflow and floating content (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 4 years, 7 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
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/ScrollAnchor.cpp » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 * (C) 2007 David Smith (catfish.man@gmail.com) 4 * (C) 2007 David Smith (catfish.man@gmail.com)
5 * Copyright (C) 2003-2013 Apple Inc. All rights reserved. 5 * Copyright (C) 2003-2013 Apple Inc. All rights reserved.
6 * Copyright (C) Research In Motion Limited 2010. All rights reserved. 6 * Copyright (C) Research In Motion Limited 2010. All rights reserved.
7 * Copyright (C) 2013 Google Inc. All rights reserved. 7 * Copyright (C) 2013 Google Inc. All rights reserved.
8 * 8 *
9 * Redistribution and use in source and binary forms, with or without 9 * Redistribution and use in source and binary forms, with or without
10 * modification, are permitted provided that the following conditions are 10 * modification, are permitted provided that the following conditions are
(...skipping 276 matching lines...) Expand 10 before | Expand all | Expand 10 after
287 return containsFloats() ? m_floatingObjects->set().last().get() : nullpt r; 287 return containsFloats() ? m_floatingObjects->set().last().get() : nullpt r;
288 } 288 }
289 289
290 void invalidateDisplayItemClientsOfFirstLine(); 290 void invalidateDisplayItemClientsOfFirstLine();
291 291
292 void simplifiedNormalFlowInlineLayout(); 292 void simplifiedNormalFlowInlineLayout();
293 bool recalcInlineChildrenOverflowAfterStyleChange(); 293 bool recalcInlineChildrenOverflowAfterStyleChange();
294 294
295 PositionWithAffinity positionForPoint(const LayoutPoint&) override; 295 PositionWithAffinity positionForPoint(const LayoutPoint&) override;
296 296
297 LayoutUnit lowestFloatLogicalBottom(FloatingObject::Type = FloatingObject::F loatLeftRight) const;
298
297 #ifndef NDEBUG 299 #ifndef NDEBUG
298 void showLineTreeAndMark(const InlineBox* = nullptr, const char* = nullptr, const InlineBox* = nullptr, const char* = nullptr, const LayoutObject* = nullptr ) const; 300 void showLineTreeAndMark(const InlineBox* = nullptr, const char* = nullptr, const InlineBox* = nullptr, const char* = nullptr, const LayoutObject* = nullptr ) const;
299 #endif 301 #endif
300 302
301 protected: 303 protected:
302 void rebuildFloatsFromIntruding(); 304 void rebuildFloatsFromIntruding();
303 void layoutInlineChildren(bool relayoutChildren, LayoutUnit& paintInvalidati onLogicalTop, LayoutUnit& paintInvalidationLogicalBottom, LayoutUnit afterEdge); 305 void layoutInlineChildren(bool relayoutChildren, LayoutUnit& paintInvalidati onLogicalTop, LayoutUnit& paintInvalidationLogicalBottom, LayoutUnit afterEdge);
304 void addLowestFloatFromChildren(LayoutBlockFlow*); 306 void addLowestFloatFromChildren(LayoutBlockFlow*);
305 307
306 void createFloatingObjects(); 308 void createFloatingObjects();
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
363 void removeFloatingObjectsBelow(FloatingObject*, int logicalOffset); 365 void removeFloatingObjectsBelow(FloatingObject*, int logicalOffset);
364 366
365 LayoutUnit getClearDelta(LayoutBox* child, LayoutUnit yPos); 367 LayoutUnit getClearDelta(LayoutBox* child, LayoutUnit yPos);
366 368
367 bool hasOverhangingFloats() { return parent() && containsFloats() && lowestF loatLogicalBottom() > logicalHeight(); } 369 bool hasOverhangingFloats() { return parent() && containsFloats() && lowestF loatLogicalBottom() > logicalHeight(); }
368 bool hasOverhangingFloat(LayoutBox*); 370 bool hasOverhangingFloat(LayoutBox*);
369 void addIntrudingFloats(LayoutBlockFlow* prev, LayoutUnit xoffset, LayoutUni t yoffset); 371 void addIntrudingFloats(LayoutBlockFlow* prev, LayoutUnit xoffset, LayoutUni t yoffset);
370 void addOverhangingFloats(LayoutBlockFlow* child, bool makeChildPaintOtherFl oats); 372 void addOverhangingFloats(LayoutBlockFlow* child, bool makeChildPaintOtherFl oats);
371 bool isOverhangingFloat(const FloatingObject& floatObject) const { return lo gicalBottomForFloat(floatObject) > logicalHeight(); } 373 bool isOverhangingFloat(const FloatingObject& floatObject) const { return lo gicalBottomForFloat(floatObject) > logicalHeight(); }
372 374
373 LayoutUnit lowestFloatLogicalBottom(FloatingObject::Type = FloatingObject::F loatLeftRight) const;
374
375 bool hitTestFloats(HitTestResult&, const HitTestLocation& locationInContaine r, const LayoutPoint& accumulatedOffset); 375 bool hitTestFloats(HitTestResult&, const HitTestLocation& locationInContaine r, const LayoutPoint& accumulatedOffset);
376 376
377 void invalidatePaintForOverhangingFloats(bool paintAllDescendants) final; 377 void invalidatePaintForOverhangingFloats(bool paintAllDescendants) final;
378 void invalidatePaintForOverflow() final; 378 void invalidatePaintForOverflow() final;
379 void invalidateDisplayItemClients(const LayoutBoxModelObject& paintInvalidat ionContainer, PaintInvalidationReason) const override; 379 void invalidateDisplayItemClients(const LayoutBoxModelObject& paintInvalidat ionContainer, PaintInvalidationReason) const override;
380 380
381 void paintFloats(const PaintInfo&, const LayoutPoint&) const final; 381 void paintFloats(const PaintInfo&, const LayoutPoint&) const final;
382 virtual void clipOutFloatingObjects(const LayoutBlock*, ClipScope&, const La youtPoint&, const LayoutSize&) const; 382 virtual void clipOutFloatingObjects(const LayoutBlock*, ClipScope&, const La youtPoint&, const LayoutSize&) const;
383 void clearFloats(EClear); 383 void clearFloats(EClear);
384 384
(...skipping 252 matching lines...) Expand 10 before | Expand all | Expand 10 after
637 637
638 // END METHODS DEFINED IN LayoutBlockFlowLine 638 // END METHODS DEFINED IN LayoutBlockFlowLine
639 639
640 }; 640 };
641 641
642 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlockFlow, isLayoutBlockFlow()); 642 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlockFlow, isLayoutBlockFlow());
643 643
644 } // namespace blink 644 } // namespace blink
645 645
646 #endif // LayoutBlockFlow_h 646 #endif // LayoutBlockFlow_h
OLDNEW
« no previous file with comments | « no previous file | third_party/WebKit/Source/core/layout/ScrollAnchor.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698