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

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

Issue 1367363002: Floats on clean lines that are dirtied during layout (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@534830
Patch Set: Created 5 years, 2 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 * (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 508 matching lines...) Expand 10 before | Expand all | Expand 10 after
519 // START METHODS DEFINED IN LayoutBlockFlowLine 519 // START METHODS DEFINED IN LayoutBlockFlowLine
520 private: 520 private:
521 InlineFlowBox* createLineBoxes(LayoutObject*, const LineInfo&, InlineBox* ch ildBox); 521 InlineFlowBox* createLineBoxes(LayoutObject*, const LineInfo&, InlineBox* ch ildBox);
522 RootInlineBox* constructLine(BidiRunList<BidiRun>&, const LineInfo&); 522 RootInlineBox* constructLine(BidiRunList<BidiRun>&, const LineInfo&);
523 void setMarginsForRubyRun(BidiRun*, LayoutRubyRun*, LayoutObject*, const Lin eInfo&); 523 void setMarginsForRubyRun(BidiRun*, LayoutRubyRun*, LayoutObject*, const Lin eInfo&);
524 void computeInlineDirectionPositionsForLine(RootInlineBox*, const LineInfo&, BidiRun* firstRun, BidiRun* trailingSpaceRun, bool reachedEnd, GlyphOverflowAnd FallbackFontsMap&, VerticalPositionCache&, WordMeasurements&); 524 void computeInlineDirectionPositionsForLine(RootInlineBox*, const LineInfo&, BidiRun* firstRun, BidiRun* trailingSpaceRun, bool reachedEnd, GlyphOverflowAnd FallbackFontsMap&, VerticalPositionCache&, WordMeasurements&);
525 BidiRun* computeInlineDirectionPositionsForSegment(RootInlineBox*, const Lin eInfo&, ETextAlign, LayoutUnit& logicalLeft, 525 BidiRun* computeInlineDirectionPositionsForSegment(RootInlineBox*, const Lin eInfo&, ETextAlign, LayoutUnit& logicalLeft,
526 LayoutUnit& availableLogicalWidth, BidiRun* firstRun, BidiRun* trailingS paceRun, GlyphOverflowAndFallbackFontsMap& textBoxDataMap, VerticalPositionCache &, WordMeasurements&); 526 LayoutUnit& availableLogicalWidth, BidiRun* firstRun, BidiRun* trailingS paceRun, GlyphOverflowAndFallbackFontsMap& textBoxDataMap, VerticalPositionCache &, WordMeasurements&);
527 void computeBlockDirectionPositionsForLine(RootInlineBox*, BidiRun*, GlyphOv erflowAndFallbackFontsMap&, VerticalPositionCache&); 527 void computeBlockDirectionPositionsForLine(RootInlineBox*, BidiRun*, GlyphOv erflowAndFallbackFontsMap&, VerticalPositionCache&);
528 void appendFloatingObjectToLastLine(FloatingObject&); 528 void appendFloatingObjectToLastLine(FloatingObject&);
529 void appendFloatsToLastLine(LineLayoutState&, const InlineIterator& cleanLin eStart);
529 // Helper function for layoutInlineChildren() 530 // Helper function for layoutInlineChildren()
530 RootInlineBox* createLineBoxesFromBidiRuns(unsigned bidiLevel, BidiRunList<B idiRun>&, const InlineIterator& end, LineInfo&, VerticalPositionCache&, BidiRun* trailingSpaceRun, WordMeasurements&); 531 RootInlineBox* createLineBoxesFromBidiRuns(unsigned bidiLevel, BidiRunList<B idiRun>&, const InlineIterator& end, LineInfo&, VerticalPositionCache&, BidiRun* trailingSpaceRun, WordMeasurements&);
531 void layoutRunsAndFloats(LineLayoutState&); 532 void layoutRunsAndFloats(LineLayoutState&);
532 const InlineIterator& restartLayoutRunsAndFloatsInRange(LayoutUnit oldLogica lHeight, LayoutUnit newLogicalHeight, FloatingObject* lastFloatFromPreviousLine , InlineBidiResolver&, const InlineIterator&); 533 const InlineIterator& restartLayoutRunsAndFloatsInRange(LayoutUnit oldLogica lHeight, LayoutUnit newLogicalHeight, FloatingObject* lastFloatFromPreviousLine , InlineBidiResolver&, const InlineIterator&);
533 void layoutRunsAndFloatsInRange(LineLayoutState&, InlineBidiResolver&, 534 void layoutRunsAndFloatsInRange(LineLayoutState&, InlineBidiResolver&,
534 const InlineIterator& cleanLineStart, const BidiStatus& cleanLineBidiSta tus); 535 const InlineIterator& cleanLineStart, const BidiStatus& cleanLineBidiSta tus);
535 void linkToEndLineIfNeeded(LineLayoutState&); 536 void linkToEndLineIfNeeded(LineLayoutState&);
536 void markDirtyFloatsForPaintInvalidation(Vector<FloatWithRect>& floats); 537 void markDirtyFloatsForPaintInvalidation(Vector<FloatWithRect>& floats);
537 RootInlineBox* determineStartPosition(LineLayoutState&, InlineBidiResolver&) ; 538 RootInlineBox* determineStartPosition(LineLayoutState&, InlineBidiResolver&) ;
538 void determineEndPosition(LineLayoutState&, RootInlineBox* startBox, InlineI terator& cleanLineStart, BidiStatus& cleanLineBidiStatus); 539 void determineEndPosition(LineLayoutState&, RootInlineBox* startBox, InlineI terator& cleanLineStart, BidiStatus& cleanLineBidiStatus);
539 bool lineBoxHasBRWithClearance(RootInlineBox*); 540 bool lineBoxHasBRWithClearance(RootInlineBox*);
540 bool checkPaginationAndFloatsAtEndLine(LineLayoutState&); 541 bool checkPaginationAndFloatsAtEndLine(LineLayoutState&);
541 bool matchedEndLine(LineLayoutState&, const InlineBidiResolver&, const Inlin eIterator& endLineStart, const BidiStatus& endLineStatus); 542 bool matchedEndLine(LineLayoutState&, const InlineBidiResolver&, const Inlin eIterator& endLineStart, const BidiStatus& endLineStatus);
542 void deleteEllipsisLineBoxes(); 543 void deleteEllipsisLineBoxes();
543 void checkLinesForTextOverflow(); 544 void checkLinesForTextOverflow();
544 // Positions new floats and also adjust all floats encountered on the line i f any of them 545 // Positions new floats and also adjust all floats encountered on the line i f any of them
545 // have to move to the next page/column. 546 // have to move to the next page/column.
546 void positionDialog(); 547 void positionDialog();
547 548
548 // END METHODS DEFINED IN LayoutBlockFlowLine 549 // END METHODS DEFINED IN LayoutBlockFlowLine
549 550
550 }; 551 };
551 552
552 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlockFlow, isLayoutBlockFlow()); 553 DEFINE_LAYOUT_OBJECT_TYPE_CASTS(LayoutBlockFlow, isLayoutBlockFlow());
553 554
554 } // namespace blink 555 } // namespace blink
555 556
556 #endif // LayoutBlockFlow_h 557 #endif // LayoutBlockFlow_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698