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

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

Issue 145083009: Remove unnecessary repaint from line layout and cleanup logic (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Created 6 years, 11 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 480 matching lines...) Expand 10 before | Expand all | Expand 10 after
491 RootInlineBox* constructLine(BidiRunList<BidiRun>&, const LineInfo&); 491 RootInlineBox* constructLine(BidiRunList<BidiRun>&, const LineInfo&);
492 void setMarginsForRubyRun(BidiRun*, RenderRubyRun*, RenderObject*, const Lin eInfo&); 492 void setMarginsForRubyRun(BidiRun*, RenderRubyRun*, RenderObject*, const Lin eInfo&);
493 void computeInlineDirectionPositionsForLine(RootInlineBox*, const LineInfo&, BidiRun* firstRun, BidiRun* trailingSpaceRun, bool reachedEnd, GlyphOverflowAnd FallbackFontsMap&, VerticalPositionCache&, WordMeasurements&); 493 void computeInlineDirectionPositionsForLine(RootInlineBox*, const LineInfo&, BidiRun* firstRun, BidiRun* trailingSpaceRun, bool reachedEnd, GlyphOverflowAnd FallbackFontsMap&, VerticalPositionCache&, WordMeasurements&);
494 BidiRun* computeInlineDirectionPositionsForSegment(RootInlineBox*, const Lin eInfo&, ETextAlign, float& logicalLeft, 494 BidiRun* computeInlineDirectionPositionsForSegment(RootInlineBox*, const Lin eInfo&, ETextAlign, float& logicalLeft,
495 float& availableLogicalWidth, BidiRun* firstRun, BidiRun* trailingSpaceR un, GlyphOverflowAndFallbackFontsMap& textBoxDataMap, VerticalPositionCache&, Wo rdMeasurements&); 495 float& availableLogicalWidth, BidiRun* firstRun, BidiRun* trailingSpaceR un, GlyphOverflowAndFallbackFontsMap& textBoxDataMap, VerticalPositionCache&, Wo rdMeasurements&);
496 void computeBlockDirectionPositionsForLine(RootInlineBox*, BidiRun*, GlyphOv erflowAndFallbackFontsMap&, VerticalPositionCache&); 496 void computeBlockDirectionPositionsForLine(RootInlineBox*, BidiRun*, GlyphOv erflowAndFallbackFontsMap&, VerticalPositionCache&);
497 BidiRun* handleTrailingSpaces(BidiRunList<BidiRun>&, BidiContext*); 497 BidiRun* handleTrailingSpaces(BidiRunList<BidiRun>&, BidiContext*);
498 void appendFloatingObjectToLastLine(FloatingObject*); 498 void appendFloatingObjectToLastLine(FloatingObject*);
499 // Helper function for layoutInlineChildren() 499 // Helper function for layoutInlineChildren()
500 RootInlineBox* createLineBoxesFromBidiRuns(unsigned bidiLevel, BidiRunList<B idiRun>&, const InlineIterator& end, LineInfo&, VerticalPositionCache&, BidiRun* trailingSpaceRun, WordMeasurements&); 500 RootInlineBox* createLineBoxesFromBidiRuns(unsigned bidiLevel, BidiRunList<B idiRun>&, const InlineIterator& end, LineInfo&, VerticalPositionCache&, BidiRun* trailingSpaceRun, WordMeasurements&);
501 void layoutRunsAndFloats(LineLayoutState&, bool hasInlineChild); 501 void layoutRunsAndFloats(LineLayoutState&);
502 const InlineIterator& restartLayoutRunsAndFloatsInRange(LayoutUnit oldLogica lHeight, LayoutUnit newLogicalHeight, FloatingObject* lastFloatFromPreviousLine , InlineBidiResolver&, const InlineIterator&); 502 const InlineIterator& restartLayoutRunsAndFloatsInRange(LayoutUnit oldLogica lHeight, LayoutUnit newLogicalHeight, FloatingObject* lastFloatFromPreviousLine , InlineBidiResolver&, const InlineIterator&);
503 void layoutRunsAndFloatsInRange(LineLayoutState&, InlineBidiResolver&, const InlineIterator& cleanLineStart, const BidiStatus& cleanLineBidiStatus, unsigned consecutiveHyphenatedLines); 503 void layoutRunsAndFloatsInRange(LineLayoutState&, InlineBidiResolver&, const InlineIterator& cleanLineStart, const BidiStatus& cleanLineBidiStatus, unsigned consecutiveHyphenatedLines);
504 void updateShapeAndSegmentsForCurrentLine(ShapeInsideInfo*&, const LayoutSiz e&, LineLayoutState&); 504 void updateShapeAndSegmentsForCurrentLine(ShapeInsideInfo*&, const LayoutSiz e&, LineLayoutState&);
505 void updateShapeAndSegmentsForCurrentLineInFlowThread(ShapeInsideInfo*&, Lin eLayoutState&); 505 void updateShapeAndSegmentsForCurrentLineInFlowThread(ShapeInsideInfo*&, Lin eLayoutState&);
506 bool adjustLogicalLineTopAndLogicalHeightIfNeeded(ShapeInsideInfo*, LayoutUn it, LineLayoutState&, InlineBidiResolver&, FloatingObject*, InlineIterator&, Wor dMeasurements&); 506 bool adjustLogicalLineTopAndLogicalHeightIfNeeded(ShapeInsideInfo*, LayoutUn it, LineLayoutState&, InlineBidiResolver&, FloatingObject*, InlineIterator&, Wor dMeasurements&);
507 void linkToEndLineIfNeeded(LineLayoutState&); 507 void linkToEndLineIfNeeded(LineLayoutState&);
508 static void repaintDirtyFloats(Vector<FloatWithRect>& floats); 508 static void repaintDirtyFloats(Vector<FloatWithRect>& floats);
509 void checkFloatsInCleanLine(RootInlineBox*, Vector<FloatWithRect>&, size_t& floatIndex, bool& encounteredNewFloat, bool& dirtiedByFloat); 509 void checkFloatsInCleanLine(RootInlineBox*, Vector<FloatWithRect>&, size_t& floatIndex, bool& encounteredNewFloat, bool& dirtiedByFloat);
510 RootInlineBox* determineStartPosition(LineLayoutState&, InlineBidiResolver&) ; 510 RootInlineBox* determineStartPosition(LineLayoutState&, InlineBidiResolver&) ;
511 void determineEndPosition(LineLayoutState&, RootInlineBox* startBox, InlineI terator& cleanLineStart, BidiStatus& cleanLineBidiStatus); 511 void determineEndPosition(LineLayoutState&, RootInlineBox* startBox, InlineI terator& cleanLineStart, BidiStatus& cleanLineBidiStatus);
512 bool checkPaginationAndFloatsAtEndLine(LineLayoutState&); 512 bool checkPaginationAndFloatsAtEndLine(LineLayoutState&);
513 bool matchedEndLine(LineLayoutState&, const InlineBidiResolver&, const Inlin eIterator& endLineStart, const BidiStatus& endLineStatus); 513 bool matchedEndLine(LineLayoutState&, const InlineBidiResolver&, const Inlin eIterator& endLineStart, const BidiStatus& endLineStatus);
514 void deleteEllipsisLineBoxes(); 514 void deleteEllipsisLineBoxes();
515 void checkLinesForTextOverflow(); 515 void checkLinesForTextOverflow();
516 // Positions new floats and also adjust all floats encountered on the line i f any of them 516 // Positions new floats and also adjust all floats encountered on the line i f any of them
517 // have to move to the next page/column. 517 // have to move to the next page/column.
518 bool positionNewFloatOnLine(FloatingObject* newFloat, FloatingObject* lastFl oatFromPreviousLine, LineInfo&, LineWidth&); 518 bool positionNewFloatOnLine(FloatingObject* newFloat, FloatingObject* lastFl oatFromPreviousLine, LineInfo&, LineWidth&);
519 519
520 520
521 // END METHODS DEFINED IN RenderBlockLineLayout 521 // END METHODS DEFINED IN RenderBlockLineLayout
522 522
523 }; 523 };
524 524
525 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow()); 525 DEFINE_RENDER_OBJECT_TYPE_CASTS(RenderBlockFlow, isRenderBlockFlow());
526 526
527 } // namespace WebCore 527 } // namespace WebCore
528 528
529 #endif // RenderBlockFlow_h 529 #endif // RenderBlockFlow_h
OLDNEW
« no previous file with comments | « no previous file | Source/core/rendering/RenderBlockLineLayout.cpp » ('j') | Source/core/rendering/RenderBlockLineLayout.cpp » ('J')

Powered by Google App Engine
This is Rietveld 408576698