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

Side by Side Diff: Source/core/rendering/RenderBlockFlow.h

Issue 720313002: Push selection gaps logic down to RenderBlockFlow (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: move even MOAR! Created 6 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 | Annotate | Revision Log
« no previous file with comments | « Source/core/rendering/RenderBlock.cpp ('k') | Source/core/rendering/RenderBlockFlow.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 163 matching lines...) Expand 10 before | Expand all | Expand 10 after
174 { 174 {
175 if (m_rareData) 175 if (m_rareData)
176 m_rareData->m_multiColumnFlowThread = nullptr; 176 m_rareData->m_multiColumnFlowThread = nullptr;
177 } 177 }
178 178
179 void addOverflowFromInlineChildren(); 179 void addOverflowFromInlineChildren();
180 180
181 // FIXME: This should be const to avoid a const_cast, but can modify child d irty bits and RenderCombineText 181 // FIXME: This should be const to avoid a const_cast, but can modify child d irty bits and RenderCombineText
182 void computeInlinePreferredLogicalWidths(LayoutUnit& minLogicalWidth, Layout Unit& maxLogicalWidth); 182 void computeInlinePreferredLogicalWidths(LayoutUnit& minLogicalWidth, Layout Unit& maxLogicalWidth);
183 183
184 virtual bool shouldPaintSelectionGaps() const override final;
185 LayoutRect logicalLeftSelectionGap(const RenderBlock* rootBlock, const Layou tPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
186 const RenderObject* selObj, LayoutUnit logicalLeft, LayoutUnit logicalTo p, LayoutUnit logicalHeight, const PaintInfo*) const;
187 LayoutRect logicalRightSelectionGap(const RenderBlock* rootBlock, const Layo utPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
188 const RenderObject* selObj, LayoutUnit logicalRight, LayoutUnit logicalT op, LayoutUnit logicalHeight, const PaintInfo*) const;
189 void getSelectionGapInfo(SelectionState, bool& leftGap, bool& rightGap) cons t;
190
191 virtual LayoutRect selectionRectForPaintInvalidation(const RenderLayerModelO bject* paintInvalidationContainer) const override final;
192 GapRects selectionGapRectsForPaintInvalidation(const RenderLayerModelObject* paintInvalidationContainer) const;
193 GapRects selectionGaps(const RenderBlock* rootBlock, const LayoutPoint& root BlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
194 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las tLogicalRight, const PaintInfo* = 0) const;
184 GapRects inlineSelectionGaps(const RenderBlock* rootBlock, const LayoutPoint & rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock, 195 GapRects inlineSelectionGaps(const RenderBlock* rootBlock, const LayoutPoint & rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
185 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las tLogicalRight, const PaintInfo*) const; 196 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las tLogicalRight, const PaintInfo*) const;
197 GapRects blockSelectionGaps(const RenderBlock* rootBlock, const LayoutPoint& rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
198 LayoutUnit& lastLogicalTop, LayoutUnit& lastLogicalLeft, LayoutUnit& las tLogicalRight, const PaintInfo*) const;
199 LayoutRect blockSelectionGap(const RenderBlock* rootBlock, const LayoutPoint & rootBlockPhysicalPosition, const LayoutSize& offsetFromRootBlock,
200 LayoutUnit lastLogicalTop, LayoutUnit lastLogicalLeft, LayoutUnit lastLo gicalRight, LayoutUnit logicalBottom, const PaintInfo*) const;
186 201
187 LayoutUnit paginationStrut() const { return m_rareData ? m_rareData->m_pagin ationStrut : LayoutUnit(); } 202 LayoutUnit paginationStrut() const { return m_rareData ? m_rareData->m_pagin ationStrut : LayoutUnit(); }
188 void setPaginationStrut(LayoutUnit); 203 void setPaginationStrut(LayoutUnit);
189 204
190 virtual bool avoidsFloats() const override; 205 virtual bool avoidsFloats() const override;
191 206
192 LayoutUnit xPositionForFloatIncludingMargin(const FloatingObject* child) con st 207 LayoutUnit xPositionForFloatIncludingMargin(const FloatingObject* child) con st
193 { 208 {
194 if (isHorizontalWritingMode()) 209 if (isHorizontalWritingMode())
195 return child->x() + child->renderer()->marginLeft(); 210 return child->x() + child->renderer()->marginLeft();
(...skipping 64 matching lines...) Expand 10 before | Expand all | Expand 10 after
260 void addOverhangingFloats(RenderBlockFlow* child, bool makeChildPaintOtherFl oats); 275 void addOverhangingFloats(RenderBlockFlow* child, bool makeChildPaintOtherFl oats);
261 276
262 LayoutUnit lowestFloatLogicalBottom(FloatingObject::Type = FloatingObject::F loatLeftRight) const; 277 LayoutUnit lowestFloatLogicalBottom(FloatingObject::Type = FloatingObject::F loatLeftRight) const;
263 LayoutUnit nextFloatLogicalBottomBelow(LayoutUnit, ShapeOutsideFloatOffsetMo de = ShapeOutsideFloatMarginBoxOffset) const; 278 LayoutUnit nextFloatLogicalBottomBelow(LayoutUnit, ShapeOutsideFloatOffsetMo de = ShapeOutsideFloatMarginBoxOffset) const;
264 279
265 virtual bool hitTestFloats(const HitTestRequest&, HitTestResult&, const HitT estLocation& locationInContainer, const LayoutPoint& accumulatedOffset) override final; 280 virtual bool hitTestFloats(const HitTestRequest&, HitTestResult&, const HitT estLocation& locationInContainer, const LayoutPoint& accumulatedOffset) override final;
266 281
267 virtual void invalidatePaintForOverhangingFloats(bool paintAllDescendants) o verride final; 282 virtual void invalidatePaintForOverhangingFloats(bool paintAllDescendants) o verride final;
268 virtual void invalidatePaintForOverflow() override final; 283 virtual void invalidatePaintForOverflow() override final;
269 virtual void paintFloats(PaintInfo&, const LayoutPoint&, bool preservePhase = false) override final; 284 virtual void paintFloats(PaintInfo&, const LayoutPoint&, bool preservePhase = false) override final;
285 virtual void paintSelection(PaintInfo&, const LayoutPoint&) override final;
270 virtual void clipOutFloatingObjects(const RenderBlock*, const PaintInfo*, co nst LayoutPoint&, const LayoutSize&) const override; 286 virtual void clipOutFloatingObjects(const RenderBlock*, const PaintInfo*, co nst LayoutPoint&, const LayoutSize&) const override;
271 void clearFloats(EClear); 287 void clearFloats(EClear);
272 288
273 LayoutUnit logicalRightFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedOffset, LayoutUnit logicalHeight) const; 289 LayoutUnit logicalRightFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit fixedOffset, LayoutUnit logicalHeight) const;
274 LayoutUnit logicalLeftFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit f ixedOffset, LayoutUnit logicalHeight) const; 290 LayoutUnit logicalLeftFloatOffsetForLine(LayoutUnit logicalTop, LayoutUnit f ixedOffset, LayoutUnit logicalHeight) const;
275 291
276 LayoutUnit logicalRightOffsetForPositioningFloat(LayoutUnit logicalTop, Layo utUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; 292 LayoutUnit logicalRightOffsetForPositioningFloat(LayoutUnit logicalTop, Layo utUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const;
277 LayoutUnit logicalLeftOffsetForPositioningFloat(LayoutUnit logicalTop, Layou tUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const; 293 LayoutUnit logicalLeftOffsetForPositioningFloat(LayoutUnit logicalTop, Layou tUnit fixedOffset, bool applyTextIndent, LayoutUnit* heightRemaining) const;
278 294
279 LayoutUnit adjustLogicalRightOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const; 295 LayoutUnit adjustLogicalRightOffsetForLine(LayoutUnit offsetFromFloats, bool applyTextIndent) const;
(...skipping 223 matching lines...) Expand 10 before | Expand all | Expand 10 after
503 519
504 // END METHODS DEFINED IN RenderBlockLineLayout 520 // END METHODS DEFINED IN RenderBlockLineLayout
505 521
506 }; 522 };
507 523
508 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); 524 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow());
509 525
510 } // namespace blink 526 } // namespace blink
511 527
512 #endif // RenderBlockFlow_h 528 #endif // RenderBlockFlow_h
OLDNEW
« no previous file with comments | « Source/core/rendering/RenderBlock.cpp ('k') | Source/core/rendering/RenderBlockFlow.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698