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

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

Issue 1167543008: Dirty nearby lineboxes if we layout a float rather than trying to work it out later (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Updated Created 5 years, 5 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 | Annotate | Revision Log
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 504 matching lines...) Expand 10 before | Expand all | Expand 10 after
515 void computeBlockDirectionPositionsForLine(RootInlineBox*, BidiRun*, GlyphOv erflowAndFallbackFontsMap&, VerticalPositionCache&); 515 void computeBlockDirectionPositionsForLine(RootInlineBox*, BidiRun*, GlyphOv erflowAndFallbackFontsMap&, VerticalPositionCache&);
516 void appendFloatingObjectToLastLine(FloatingObject&); 516 void appendFloatingObjectToLastLine(FloatingObject&);
517 // Helper function for layoutInlineChildren() 517 // Helper function for layoutInlineChildren()
518 RootInlineBox* createLineBoxesFromBidiRuns(unsigned bidiLevel, BidiRunList<B idiRun>&, const InlineIterator& end, LineInfo&, VerticalPositionCache&, BidiRun* trailingSpaceRun, WordMeasurements&); 518 RootInlineBox* createLineBoxesFromBidiRuns(unsigned bidiLevel, BidiRunList<B idiRun>&, const InlineIterator& end, LineInfo&, VerticalPositionCache&, BidiRun* trailingSpaceRun, WordMeasurements&);
519 void layoutRunsAndFloats(LineLayoutState&); 519 void layoutRunsAndFloats(LineLayoutState&);
520 const InlineIterator& restartLayoutRunsAndFloatsInRange(LayoutUnit oldLogica lHeight, LayoutUnit newLogicalHeight, FloatingObject* lastFloatFromPreviousLine , InlineBidiResolver&, const InlineIterator&); 520 const InlineIterator& restartLayoutRunsAndFloatsInRange(LayoutUnit oldLogica lHeight, LayoutUnit newLogicalHeight, FloatingObject* lastFloatFromPreviousLine , InlineBidiResolver&, const InlineIterator&);
521 void layoutRunsAndFloatsInRange(LineLayoutState&, InlineBidiResolver&, 521 void layoutRunsAndFloatsInRange(LineLayoutState&, InlineBidiResolver&,
522 const InlineIterator& cleanLineStart, const BidiStatus& cleanLineBidiSta tus); 522 const InlineIterator& cleanLineStart, const BidiStatus& cleanLineBidiSta tus);
523 void linkToEndLineIfNeeded(LineLayoutState&); 523 void linkToEndLineIfNeeded(LineLayoutState&);
524 static void markDirtyFloatsForPaintInvalidation(Vector<FloatWithRect>& float s); 524 static void markDirtyFloatsForPaintInvalidation(Vector<FloatWithRect>& float s);
525 void checkFloatsInCleanLine(RootInlineBox*, Vector<FloatWithRect>&, size_t& floatIndex, bool& encounteredNewFloat, bool& dirtiedByFloat);
526 RootInlineBox* determineStartPosition(LineLayoutState&, InlineBidiResolver&) ; 525 RootInlineBox* determineStartPosition(LineLayoutState&, InlineBidiResolver&) ;
527 void determineEndPosition(LineLayoutState&, RootInlineBox* startBox, InlineI terator& cleanLineStart, BidiStatus& cleanLineBidiStatus); 526 void determineEndPosition(LineLayoutState&, RootInlineBox* startBox, InlineI terator& cleanLineStart, BidiStatus& cleanLineBidiStatus);
528 bool lineBoxHasBRWithClearance(RootInlineBox*); 527 bool lineBoxHasBRWithClearance(RootInlineBox*);
529 bool checkPaginationAndFloatsAtEndLine(LineLayoutState&); 528 bool checkPaginationAndFloatsAtEndLine(LineLayoutState&);
530 bool matchedEndLine(LineLayoutState&, const InlineBidiResolver&, const Inlin eIterator& endLineStart, const BidiStatus& endLineStatus); 529 bool matchedEndLine(LineLayoutState&, const InlineBidiResolver&, const Inlin eIterator& endLineStart, const BidiStatus& endLineStatus);
531 void deleteEllipsisLineBoxes(); 530 void deleteEllipsisLineBoxes();
532 void checkLinesForTextOverflow(); 531 void checkLinesForTextOverflow();
533 // Positions new floats and also adjust all floats encountered on the line i f any of them 532 // Positions new floats and also adjust all floats encountered on the line i f any of them
534 // have to move to the next page/column. 533 // have to move to the next page/column.
535 bool positionNewFloatOnLine(FloatingObject& newFloat, FloatingObject* lastFl oatFromPreviousLine, LineInfo&, LineWidth&); 534 bool positionNewFloatOnLine(FloatingObject& newFloat, FloatingObject* lastFl oatFromPreviousLine, LineInfo&, LineWidth&);
536 void positionDialog(); 535 void positionDialog();
537 536
538 // END METHODS DEFINED IN LayoutBlockFlowLine 537 // END METHODS DEFINED IN LayoutBlockFlowLine
539 538
540 }; 539 };
541 540
542 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlockFlow, isLayoutBlockFlow()); 541 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlockFlow, isLayoutBlockFlow());
543 542
544 } // namespace blink 543 } // namespace blink
545 544
546 #endif // LayoutBlockFlow_h 545 #endif // LayoutBlockFlow_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698