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

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

Issue 945803004: Merge back LayoutLayerModelObject into RenderBoxModelObject (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Better rebasing. Created 5 years, 10 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
« no previous file with comments | « Source/core/layout/LayoutLayerModelObject.cpp ('k') | Source/core/layout/LayoutObject.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) 2000 Lars Knoll (knoll@kde.org) 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org)
3 * (C) 2000 Antti Koivisto (koivisto@kde.org) 3 * (C) 2000 Antti Koivisto (koivisto@kde.org)
4 * (C) 2000 Dirk Mueller (mueller@kde.org) 4 * (C) 2000 Dirk Mueller (mueller@kde.org)
5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com) 5 * (C) 2004 Allan Sandfeld Jensen (kde@carewolf.com)
6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved. 6 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2012 Apple Inc. All r ights reserved.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * 8 *
9 * This library is free software; you can redistribute it and/or 9 * This library is free software; you can redistribute it and/or
10 * modify it under the terms of the GNU Library General Public 10 * modify it under the terms of the GNU Library General Public
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after
60 class HitTestResult; 60 class HitTestResult;
61 class InlineBox; 61 class InlineBox;
62 class Position; 62 class Position;
63 class PositionWithAffinity; 63 class PositionWithAffinity;
64 class PseudoStyleRequest; 64 class PseudoStyleRequest;
65 class LayoutBoxModelObject; 65 class LayoutBoxModelObject;
66 class RenderBlock; 66 class RenderBlock;
67 class LayoutFlowThread; 67 class LayoutFlowThread;
68 class LayoutGeometryMap; 68 class LayoutGeometryMap;
69 class Layer; 69 class Layer;
70 class LayoutLayerModelObject;
71 class LayoutMultiColumnSpannerPlaceholder; 70 class LayoutMultiColumnSpannerPlaceholder;
72 class RenderView; 71 class RenderView;
73 class TransformState; 72 class TransformState;
74 73
75 struct PaintInfo; 74 struct PaintInfo;
76 75
77 enum CursorDirective { 76 enum CursorDirective {
78 SetCursorBasedOnStyle, 77 SetCursorBasedOnStyle,
79 SetCursor, 78 SetCursor,
80 DoNotSetCursor 79 DoNotSetCursor
(...skipping 294 matching lines...) Expand 10 before | Expand all | Expand 10 after
375 bool isTableSection() const { return isOfType(LayoutObjectTableSection); } 374 bool isTableSection() const { return isOfType(LayoutObjectTableSection); }
376 bool isTextArea() const { return isOfType(LayoutObjectTextArea); } 375 bool isTextArea() const { return isOfType(LayoutObjectTextArea); }
377 bool isTextControl() const { return isOfType(LayoutObjectTextControl); } 376 bool isTextControl() const { return isOfType(LayoutObjectTextControl); }
378 bool isTextField() const { return isOfType(LayoutObjectTextField); } 377 bool isTextField() const { return isOfType(LayoutObjectTextField); }
379 bool isVideo() const { return isOfType(LayoutObjectVideo); } 378 bool isVideo() const { return isOfType(LayoutObjectVideo); }
380 bool isWidget() const { return isOfType(LayoutObjectWidget); } 379 bool isWidget() const { return isOfType(LayoutObjectWidget); }
381 380
382 virtual bool isImage() const { return false; } 381 virtual bool isImage() const { return false; }
383 382
384 virtual bool isInlineBlockOrInlineTable() const { return false; } 383 virtual bool isInlineBlockOrInlineTable() const { return false; }
385 virtual bool isLayoutLayerModelObject() const { return false; } 384 virtual bool isLayoutBoxModelObject() const { return false; }
386 virtual bool isRenderBlock() const { return false; } 385 virtual bool isRenderBlock() const { return false; }
387 virtual bool isRenderBlockFlow() const { return false; } 386 virtual bool isRenderBlockFlow() const { return false; }
388 virtual bool isLayoutFlowThread() const { return false; } 387 virtual bool isLayoutFlowThread() const { return false; }
389 virtual bool isRenderInline() const { return false; } 388 virtual bool isRenderInline() const { return false; }
390 virtual bool isLayoutPart() const { return false; } 389 virtual bool isLayoutPart() const { return false; }
391 390
392 bool isDocumentElement() const { return document().documentElement() == m_no de; } 391 bool isDocumentElement() const { return document().documentElement() == m_no de; }
393 // isBody is called from RenderBox::styleWillChange and is thus quite hot. 392 // isBody is called from RenderBox::styleWillChange and is thus quite hot.
394 bool isBody() const { return node() && node()->hasTagName(HTMLNames::bodyTag ); } 393 bool isBody() const { return node() && node()->hasTagName(HTMLNames::bodyTag ); }
395 bool isHR() const; 394 bool isHR() const;
(...skipping 235 matching lines...) Expand 10 before | Expand all | Expand 10 after
631 630
632 Document& document() const { return m_node->document(); } 631 Document& document() const { return m_node->document(); }
633 LocalFrame* frame() const { return document().frame(); } 632 LocalFrame* frame() const { return document().frame(); }
634 633
635 virtual LayoutMultiColumnSpannerPlaceholder* spannerPlaceholder() const { re turn 0; } 634 virtual LayoutMultiColumnSpannerPlaceholder* spannerPlaceholder() const { re turn 0; }
636 bool isColumnSpanAll() const { return style()->columnSpan() == ColumnSpanAll && spannerPlaceholder(); } 635 bool isColumnSpanAll() const { return style()->columnSpan() == ColumnSpanAll && spannerPlaceholder(); }
637 636
638 // Returns the object containing this one. Can be different from parent for positioned elements. 637 // Returns the object containing this one. Can be different from parent for positioned elements.
639 // If paintInvalidationContainer and paintInvalidationContainerSkipped are n ot null, on return *paintInvalidationContainerSkipped 638 // If paintInvalidationContainer and paintInvalidationContainerSkipped are n ot null, on return *paintInvalidationContainerSkipped
640 // is true if the renderer returned is an ancestor of paintInvalidationConta iner. 639 // is true if the renderer returned is an ancestor of paintInvalidationConta iner.
641 LayoutObject* container(const LayoutLayerModelObject* paintInvalidationConta iner = 0, bool* paintInvalidationContainerSkipped = 0) const; 640 LayoutObject* container(const LayoutBoxModelObject* paintInvalidationContain er = 0, bool* paintInvalidationContainerSkipped = 0) const;
642 RenderBlock* containerForFixedPosition(const LayoutLayerModelObject* paintIn validationContainer = 0, bool* paintInvalidationContainerSkipped = 0) const; 641 RenderBlock* containerForFixedPosition(const LayoutBoxModelObject* paintInva lidationContainer = 0, bool* paintInvalidationContainerSkipped = 0) const;
643 642
644 virtual LayoutObject* hoverAncestor() const { return parent(); } 643 virtual LayoutObject* hoverAncestor() const { return parent(); }
645 644
646 Element* offsetParent() const; 645 Element* offsetParent() const;
647 646
648 void markContainingBlocksForLayout(bool scheduleRelayout = true, LayoutObjec t* newRoot = 0, SubtreeLayoutScope* = 0); 647 void markContainingBlocksForLayout(bool scheduleRelayout = true, LayoutObjec t* newRoot = 0, SubtreeLayoutScope* = 0);
649 void setNeedsLayout(MarkingBehavior = MarkContainingBlockChain, SubtreeLayou tScope* = 0); 648 void setNeedsLayout(MarkingBehavior = MarkContainingBlockChain, SubtreeLayou tScope* = 0);
650 void setNeedsLayoutAndFullPaintInvalidation(MarkingBehavior = MarkContaining BlockChain, SubtreeLayoutScope* = 0); 649 void setNeedsLayoutAndFullPaintInvalidation(MarkingBehavior = MarkContaining BlockChain, SubtreeLayoutScope* = 0);
651 void clearNeedsLayout(); 650 void clearNeedsLayout();
652 void setChildNeedsLayout(MarkingBehavior = MarkContainingBlockChain, Subtree LayoutScope* = 0); 651 void setChildNeedsLayout(MarkingBehavior = MarkContainingBlockChain, Subtree LayoutScope* = 0);
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
760 759
761 // Convert a local quad to absolute coordinates, taking transforms into acco unt. 760 // Convert a local quad to absolute coordinates, taking transforms into acco unt.
762 FloatQuad localToAbsoluteQuad(const FloatQuad& quad, MapCoordinatesFlags mod e = 0, bool* wasFixed = 0) const 761 FloatQuad localToAbsoluteQuad(const FloatQuad& quad, MapCoordinatesFlags mod e = 0, bool* wasFixed = 0) const
763 { 762 {
764 return localToContainerQuad(quad, 0, mode, wasFixed); 763 return localToContainerQuad(quad, 0, mode, wasFixed);
765 } 764 }
766 // Convert an absolute quad to local coordinates. 765 // Convert an absolute quad to local coordinates.
767 FloatQuad absoluteToLocalQuad(const FloatQuad&, MapCoordinatesFlags mode = 0 ) const; 766 FloatQuad absoluteToLocalQuad(const FloatQuad&, MapCoordinatesFlags mode = 0 ) const;
768 767
769 // Convert a local quad into the coordinate system of container, taking tran sforms into account. 768 // Convert a local quad into the coordinate system of container, taking tran sforms into account.
770 FloatQuad localToContainerQuad(const FloatQuad&, const LayoutLayerModelObjec t* paintInvalidatinoContainer, MapCoordinatesFlags = 0, bool* wasFixed = 0) cons t; 769 FloatQuad localToContainerQuad(const FloatQuad&, const LayoutBoxModelObject* paintInvalidatinoContainer, MapCoordinatesFlags = 0, bool* wasFixed = 0) const;
771 FloatPoint localToContainerPoint(const FloatPoint&, const LayoutLayerModelOb ject* paintInvalidationContainer, MapCoordinatesFlags = 0, bool* wasFixed = 0, c onst PaintInvalidationState* = 0) const; 770 FloatPoint localToContainerPoint(const FloatPoint&, const LayoutBoxModelObje ct* paintInvalidationContainer, MapCoordinatesFlags = 0, bool* wasFixed = 0, con st PaintInvalidationState* = 0) const;
772 771
773 // Convert a local point into the coordinate system of backing coordinates. Also returns the backing layer if needed. 772 // Convert a local point into the coordinate system of backing coordinates. Also returns the backing layer if needed.
774 FloatPoint localToInvalidationBackingPoint(const LayoutPoint&, Layer** backi ngLayer = nullptr); 773 FloatPoint localToInvalidationBackingPoint(const LayoutPoint&, Layer** backi ngLayer = nullptr);
775 774
776 // Return the offset from the container() renderer (excluding transforms). I n multi-column layout, 775 // Return the offset from the container() renderer (excluding transforms). I n multi-column layout,
777 // different offsets apply at different points, so return the offset that ap plies to the given point. 776 // different offsets apply at different points, so return the offset that ap plies to the given point.
778 virtual LayoutSize offsetFromContainer(const LayoutObject*, const LayoutPoin t&, bool* offsetDependsOnPoint = 0) const; 777 virtual LayoutSize offsetFromContainer(const LayoutObject*, const LayoutPoin t&, bool* offsetDependsOnPoint = 0) const;
779 // Return the offset from an object up the container() chain. Asserts that n one of the intermediate objects have transforms. 778 // Return the offset from an object up the container() chain. Asserts that n one of the intermediate objects have transforms.
780 LayoutSize offsetFromAncestorContainer(const LayoutObject*) const; 779 LayoutSize offsetFromAncestorContainer(const LayoutObject*) const;
781 780
(...skipping 47 matching lines...) Expand 10 before | Expand all | Expand 10 after
829 virtual CursorDirective getCursor(const LayoutPoint&, Cursor&) const; 828 virtual CursorDirective getCursor(const LayoutPoint&, Cursor&) const;
830 829
831 struct AppliedTextDecoration { 830 struct AppliedTextDecoration {
832 Color color; 831 Color color;
833 TextDecorationStyle style; 832 TextDecorationStyle style;
834 AppliedTextDecoration() : color(Color::transparent), style(TextDecoratio nStyleSolid) { } 833 AppliedTextDecoration() : color(Color::transparent), style(TextDecoratio nStyleSolid) { }
835 }; 834 };
836 835
837 void getTextDecorations(unsigned decorations, AppliedTextDecoration& underli ne, AppliedTextDecoration& overline, AppliedTextDecoration& linethrough, bool qu irksMode = false, bool firstlineStyle = false); 836 void getTextDecorations(unsigned decorations, AppliedTextDecoration& underli ne, AppliedTextDecoration& overline, AppliedTextDecoration& linethrough, bool qu irksMode = false, bool firstlineStyle = false);
838 837
839 // Return the LayoutLayerModelObject in the container chain which is respons ible for painting this object, or 0 838 // Return the LayoutBoxModelObject in the container chain which is responsib le for painting this object, or 0
840 // if painting is root-relative. This is the container that should be passed to the 'forPaintInvalidation' 839 // if painting is root-relative. This is the container that should be passed to the 'forPaintInvalidation'
841 // methods. 840 // methods.
842 const LayoutLayerModelObject* containerForPaintInvalidation() const; 841 const LayoutBoxModelObject* containerForPaintInvalidation() const;
843 const LayoutLayerModelObject* adjustCompositedContainerForSpecialAncestors(c onst LayoutLayerModelObject* paintInvalidationContainer) const; 842 const LayoutBoxModelObject* adjustCompositedContainerForSpecialAncestors(con st LayoutBoxModelObject* paintInvalidationContainer) const;
844 bool isPaintInvalidationContainer() const; 843 bool isPaintInvalidationContainer() const;
845 844
846 LayoutRect computePaintInvalidationRect() 845 LayoutRect computePaintInvalidationRect()
847 { 846 {
848 return computePaintInvalidationRect(containerForPaintInvalidation()); 847 return computePaintInvalidationRect(containerForPaintInvalidation());
849 } 848 }
850 849
851 // Returns the paint invalidation rect for this LayoutObject in the coordina te space of the paint backing (typically a GraphicsLayer) for |paintInvalidation Container|. 850 // Returns the paint invalidation rect for this LayoutObject in the coordina te space of the paint backing (typically a GraphicsLayer) for |paintInvalidation Container|.
852 LayoutRect computePaintInvalidationRect(const LayoutLayerModelObject* paintI nvalidationContainer, const PaintInvalidationState* = 0) const; 851 LayoutRect computePaintInvalidationRect(const LayoutBoxModelObject* paintInv alidationContainer, const PaintInvalidationState* = 0) const;
853 852
854 // Returns the rect bounds needed to invalidate the paint of this object, in the coordinate space of the rendering backing of |paintInvalidationContainer| 853 // Returns the rect bounds needed to invalidate the paint of this object, in the coordinate space of the rendering backing of |paintInvalidationContainer|
855 LayoutRect boundsRectForPaintInvalidation(const LayoutLayerModelObject* pain tInvalidationContainer, const PaintInvalidationState* = 0) const; 854 LayoutRect boundsRectForPaintInvalidation(const LayoutBoxModelObject* paintI nvalidationContainer, const PaintInvalidationState* = 0) const;
856 855
857 // Actually do the paint invalidate of rect r for this object which has been computed in the coordinate space 856 // Actually do the paint invalidate of rect r for this object which has been computed in the coordinate space
858 // of the GraphicsLayer backing of |paintInvalidationContainer|. Note that t his coordinaten space is not the same 857 // of the GraphicsLayer backing of |paintInvalidationContainer|. Note that t his coordinaten space is not the same
859 // as the local coordinate space of |paintInvalidationContainer| in the pres ence of layer squashing. 858 // as the local coordinate space of |paintInvalidationContainer| in the pres ence of layer squashing.
860 // If |paintInvalidationContainer| is 0, invalidate paints via the view. 859 // If |paintInvalidationContainer| is 0, invalidate paints via the view.
861 // FIXME: |paintInvalidationContainer| should never be 0. See crbug.com/3636 99. 860 // FIXME: |paintInvalidationContainer| should never be 0. See crbug.com/3636 99.
862 void invalidatePaintUsingContainer(const LayoutLayerModelObject* paintInvali dationContainer, const LayoutRect&, PaintInvalidationReason) const; 861 void invalidatePaintUsingContainer(const LayoutBoxModelObject* paintInvalida tionContainer, const LayoutRect&, PaintInvalidationReason) const;
863 862
864 // Invalidate the paint of a specific subrectangle within a given object. Th e rect |r| is in the object's coordinate space. 863 // Invalidate the paint of a specific subrectangle within a given object. Th e rect |r| is in the object's coordinate space.
865 void invalidatePaintRectangle(const LayoutRect&) const; 864 void invalidatePaintRectangle(const LayoutRect&) const;
866 865
867 void invalidateSelectionIfNeeded(const LayoutLayerModelObject&, PaintInvalid ationReason); 866 void invalidateSelectionIfNeeded(const LayoutBoxModelObject&, PaintInvalidat ionReason);
868 867
869 // Walk the tree after layout issuing paint invalidations for renderers that have changed or moved, updating bounds that have changed, and clearing paint in validation state. 868 // Walk the tree after layout issuing paint invalidations for renderers that have changed or moved, updating bounds that have changed, and clearing paint in validation state.
870 virtual void invalidateTreeIfNeeded(const PaintInvalidationState&); 869 virtual void invalidateTreeIfNeeded(const PaintInvalidationState&);
871 870
872 virtual void invalidatePaintForOverflow(); 871 virtual void invalidatePaintForOverflow();
873 void invalidatePaintForOverflowIfNeeded(); 872 void invalidatePaintForOverflowIfNeeded();
874 873
875 void invalidatePaintIncludingNonCompositingDescendants(); 874 void invalidatePaintIncludingNonCompositingDescendants();
876 875
877 // Returns the rect that should have paint invalidated whenever this object changes. The rect is in the view's 876 // Returns the rect that should have paint invalidated whenever this object changes. The rect is in the view's
878 // coordinate space. This method deals with outlines and overflow. 877 // coordinate space. This method deals with outlines and overflow.
879 virtual LayoutRect absoluteClippedOverflowRect() const; 878 virtual LayoutRect absoluteClippedOverflowRect() const;
880 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutLayer ModelObject* paintInvalidationContainer, const PaintInvalidationState* = 0) cons t; 879 virtual LayoutRect clippedOverflowRectForPaintInvalidation(const LayoutBoxMo delObject* paintInvalidationContainer, const PaintInvalidationState* = 0) const;
881 virtual LayoutRect rectWithOutlineForPaintInvalidation(const LayoutLayerMode lObject* paintInvalidationContainer, LayoutUnit outlineWidth, const PaintInvalid ationState* = 0) const; 880 virtual LayoutRect rectWithOutlineForPaintInvalidation(const LayoutBoxModelO bject* paintInvalidationContainer, LayoutUnit outlineWidth, const PaintInvalidat ionState* = 0) const;
882 881
883 // Given a rect in the object's coordinate space, compute a rect suitable fo r invalidating paints of 882 // Given a rect in the object's coordinate space, compute a rect suitable fo r invalidating paints of
884 // that rect in the coordinate space of paintInvalidationContainer. 883 // that rect in the coordinate space of paintInvalidationContainer.
885 virtual void mapRectToPaintInvalidationBacking(const LayoutLayerModelObject* paintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const; 884 virtual void mapRectToPaintInvalidationBacking(const LayoutBoxModelObject* p aintInvalidationContainer, LayoutRect&, const PaintInvalidationState*) const;
886 885
887 // Return the offset to the column in which the specified point (in flow-thr ead coordinates) 886 // Return the offset to the column in which the specified point (in flow-thr ead coordinates)
888 // lives. This is used to convert a flow-thread point to a visual point. 887 // lives. This is used to convert a flow-thread point to a visual point.
889 virtual LayoutSize columnOffset(const LayoutPoint&) const { return LayoutSiz e(); } 888 virtual LayoutSize columnOffset(const LayoutPoint&) const { return LayoutSiz e(); }
890 889
891 virtual unsigned length() const { return 1; } 890 virtual unsigned length() const { return 1; }
892 891
893 bool isFloatingOrOutOfFlowPositioned() const { return (isFloating() || isOut OfFlowPositioned()); } 892 bool isFloatingOrOutOfFlowPositioned() const { return (isFloating() || isOut OfFlowPositioned()); }
894 893
895 bool isTransparent() const { return style()->hasOpacity(); } 894 bool isTransparent() const { return style()->hasOpacity(); }
(...skipping 11 matching lines...) Expand all
907 906
908 // The current selection state for an object. For blocks, the state refers to the state of the leaf 907 // The current selection state for an object. For blocks, the state refers to the state of the leaf
909 // descendants (as described above in the SelectionState enum declaration). 908 // descendants (as described above in the SelectionState enum declaration).
910 SelectionState selectionState() const { return m_bitfields.selectionState(); } 909 SelectionState selectionState() const { return m_bitfields.selectionState(); }
911 virtual void setSelectionState(SelectionState state) { m_bitfields.setSelect ionState(state); } 910 virtual void setSelectionState(SelectionState state) { m_bitfields.setSelect ionState(state); }
912 inline void setSelectionStateIfNeeded(SelectionState); 911 inline void setSelectionStateIfNeeded(SelectionState);
913 bool canUpdateSelectionOnRootLineBoxes() const; 912 bool canUpdateSelectionOnRootLineBoxes() const;
914 913
915 // A single rectangle that encompasses all of the selected objects within th is object. Used to determine the tightest 914 // A single rectangle that encompasses all of the selected objects within th is object. Used to determine the tightest
916 // possible bounding box for the selection. The rect returned is in the coor dinate space of the paint invalidation container's backing. 915 // possible bounding box for the selection. The rect returned is in the coor dinate space of the paint invalidation container's backing.
917 virtual LayoutRect selectionRectForPaintInvalidation(const LayoutLayerModelO bject* /*paintInvalidationContainer*/) const { return LayoutRect(); } 916 virtual LayoutRect selectionRectForPaintInvalidation(const LayoutBoxModelObj ect* /*paintInvalidationContainer*/) const { return LayoutRect(); }
918 917
919 virtual bool canBeSelectionLeaf() const { return false; } 918 virtual bool canBeSelectionLeaf() const { return false; }
920 bool hasSelectedChildren() const { return selectionState() != SelectionNone; } 919 bool hasSelectedChildren() const { return selectionState() != SelectionNone; }
921 920
922 bool isSelectable() const; 921 bool isSelectable() const;
923 // Obtains the selection colors that should be used when painting a selectio n. 922 // Obtains the selection colors that should be used when painting a selectio n.
924 Color selectionBackgroundColor() const; 923 Color selectionBackgroundColor() const;
925 Color selectionForegroundColor() const; 924 Color selectionForegroundColor() const;
926 Color selectionEmphasisMarkColor() const; 925 Color selectionEmphasisMarkColor() const;
927 926
(...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after
979 bool isInert() const; 978 bool isInert() const;
980 979
981 bool supportsTouchAction() const; 980 bool supportsTouchAction() const;
982 981
983 bool visibleToHitTestRequest(const HitTestRequest& request) const { return s tyle()->visibility() == VISIBLE && (request.ignorePointerEventsNone() || style() ->pointerEvents() != PE_NONE) && !isInert(); } 982 bool visibleToHitTestRequest(const HitTestRequest& request) const { return s tyle()->visibility() == VISIBLE && (request.ignorePointerEventsNone() || style() ->pointerEvents() != PE_NONE) && !isInert(); }
984 983
985 bool visibleToHitTesting() const { return style()->visibility() == VISIBLE & & style()->pointerEvents() != PE_NONE && !isInert(); } 984 bool visibleToHitTesting() const { return style()->visibility() == VISIBLE & & style()->pointerEvents() != PE_NONE && !isInert(); }
986 985
987 // Map points and quads through elements, potentially via 3d transforms. You should never need to call these directly; use 986 // Map points and quads through elements, potentially via 3d transforms. You should never need to call these directly; use
988 // localToAbsolute/absoluteToLocal methods instead. 987 // localToAbsolute/absoluteToLocal methods instead.
989 virtual void mapLocalToContainer(const LayoutLayerModelObject* paintInvalida tionContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wasFixed = 0, const PaintInvalidationState* = 0) const; 988 virtual void mapLocalToContainer(const LayoutBoxModelObject* paintInvalidati onContainer, TransformState&, MapCoordinatesFlags = ApplyContainerFlip, bool* wa sFixed = 0, const PaintInvalidationState* = 0) const;
990 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c onst; 989 virtual void mapAbsoluteToLocalPoint(MapCoordinatesFlags, TransformState&) c onst;
991 990
992 // Pushes state onto LayoutGeometryMap about how to map coordinates from thi s renderer to its container, or ancestorToStopAt (whichever is encountered first ). 991 // Pushes state onto LayoutGeometryMap about how to map coordinates from thi s renderer to its container, or ancestorToStopAt (whichever is encountered first ).
993 // Returns the renderer which was mapped to (container or ancestorToStopAt). 992 // Returns the renderer which was mapped to (container or ancestorToStopAt).
994 virtual const LayoutObject* pushMappingToContainer(const LayoutLayerModelObj ect* ancestorToStopAt, LayoutGeometryMap&) const; 993 virtual const LayoutObject* pushMappingToContainer(const LayoutBoxModelObjec t* ancestorToStopAt, LayoutGeometryMap&) const;
995 994
996 bool shouldUseTransformFromContainer(const LayoutObject* container) const; 995 bool shouldUseTransformFromContainer(const LayoutObject* container) const;
997 void getTransformFromContainer(const LayoutObject* container, const LayoutSi ze& offsetInContainer, TransformationMatrix&) const; 996 void getTransformFromContainer(const LayoutObject* container, const LayoutSi ze& offsetInContainer, TransformationMatrix&) const;
998 997
999 bool createsGroup() const { return isTransparent() || hasMask() || hasFilter () || style()->hasBlendMode(); } 998 bool createsGroup() const { return isTransparent() || hasMask() || hasFilter () || style()->hasBlendMode(); }
1000 999
1001 virtual void addFocusRingRects(Vector<LayoutRect>&, const LayoutPoint& addit ionalOffset) const { } 1000 virtual void addFocusRingRects(Vector<LayoutRect>&, const LayoutPoint& addit ionalOffset) const { }
1002 1001
1003 // Compute a list of hit-test rectangles per layer rooted at this renderer. 1002 // Compute a list of hit-test rectangles per layer rooted at this renderer.
1004 virtual void computeLayerHitTestRects(LayerHitTestRects&) const; 1003 virtual void computeLayerHitTestRects(LayerHitTestRects&) const;
(...skipping 164 matching lines...) Expand 10 before | Expand all | Expand 10 after
1169 // container, so callers should provide only the offset of the container wit hin it's layer. 1168 // container, so callers should provide only the offset of the container wit hin it's layer.
1170 // containerRect is a rect that has already been added for the currentLayer which is likely to 1169 // containerRect is a rect that has already been added for the currentLayer which is likely to
1171 // be a container for child elements. Any rect wholly contained by container Rect can be 1170 // be a container for child elements. Any rect wholly contained by container Rect can be
1172 // skipped. 1171 // skipped.
1173 virtual void addLayerHitTestRects(LayerHitTestRects&, const Layer* currentLa yer, const LayoutPoint& layerOffset, const LayoutRect& containerRect) const; 1172 virtual void addLayerHitTestRects(LayerHitTestRects&, const Layer* currentLa yer, const LayoutPoint& layerOffset, const LayoutRect& containerRect) const;
1174 1173
1175 // Add hit-test rects for this renderer only to the provided list. layerOffs et is the offset 1174 // Add hit-test rects for this renderer only to the provided list. layerOffs et is the offset
1176 // of this renderer within the current layer that should be used for each re sult. 1175 // of this renderer within the current layer that should be used for each re sult.
1177 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOffset) const { }; 1176 virtual void computeSelfHitTestRects(Vector<LayoutRect>&, const LayoutPoint& layerOffset) const { };
1178 1177
1179 virtual PaintInvalidationReason paintInvalidationReason(const LayoutLayerMod elObject& paintInvalidationContainer, 1178 virtual PaintInvalidationReason paintInvalidationReason(const LayoutBoxModel Object& paintInvalidationContainer,
1180 const LayoutRect& oldPaintInvalidationRect, const LayoutPoint& oldPositi onFromPaintInvalidationBacking, 1179 const LayoutRect& oldPaintInvalidationRect, const LayoutPoint& oldPositi onFromPaintInvalidationBacking,
1181 const LayoutRect& newPaintInvalidationRect, const LayoutPoint& newPositi onFromPaintInvalidationBacking) const; 1180 const LayoutRect& newPaintInvalidationRect, const LayoutPoint& newPositi onFromPaintInvalidationBacking) const;
1182 virtual void incrementallyInvalidatePaint(const LayoutLayerModelObject& pain tInvalidationContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds , const LayoutPoint& positionFromPaintInvalidationBacking); 1181 virtual void incrementallyInvalidatePaint(const LayoutBoxModelObject& paintI nvalidationContainer, const LayoutRect& oldBounds, const LayoutRect& newBounds, const LayoutPoint& positionFromPaintInvalidationBacking);
1183 void fullyInvalidatePaint(const LayoutLayerModelObject& paintInvalidationCon tainer, PaintInvalidationReason, const LayoutRect& oldBounds, const LayoutRect& newBounds); 1182 void fullyInvalidatePaint(const LayoutBoxModelObject& paintInvalidationConta iner, PaintInvalidationReason, const LayoutRect& oldBounds, const LayoutRect& ne wBounds);
1184 1183
1185 virtual bool hasNonCompositedScrollbars() const { return false; } 1184 virtual bool hasNonCompositedScrollbars() const { return false; }
1186 1185
1187 #if ENABLE(ASSERT) 1186 #if ENABLE(ASSERT)
1188 virtual bool paintInvalidationStateIsDirty() const 1187 virtual bool paintInvalidationStateIsDirty() const
1189 { 1188 {
1190 return neededLayoutBecauseOfChildren() || shouldCheckForPaintInvalidatio nRegardlessOfPaintInvalidationState(); 1189 return neededLayoutBecauseOfChildren() || shouldCheckForPaintInvalidatio nRegardlessOfPaintInvalidationState();
1191 } 1190 }
1192 #endif 1191 #endif
1193 1192
1194 virtual void invalidatePaintOfSubtreesIfNeeded(const PaintInvalidationState& childPaintInvalidationState); 1193 virtual void invalidatePaintOfSubtreesIfNeeded(const PaintInvalidationState& childPaintInvalidationState);
1195 virtual PaintInvalidationReason invalidatePaintIfNeeded(const PaintInvalidat ionState&, const LayoutLayerModelObject& paintInvalidationContainer); 1194 virtual PaintInvalidationReason invalidatePaintIfNeeded(const PaintInvalidat ionState&, const LayoutBoxModelObject& paintInvalidationContainer);
1196 1195
1197 // When this object is invalidated for paint, this method is called to inval idate any DisplayItemClients 1196 // When this object is invalidated for paint, this method is called to inval idate any DisplayItemClients
1198 // owned by this object, including the object itself, RenderText/RenderInlin e line boxes, scrollbars, etc., 1197 // owned by this object, including the object itself, RenderText/RenderInlin e line boxes, scrollbars, etc.,
1199 // not including children which will be invalidated normally during invalida teTreeIfNeeded(). 1198 // not including children which will be invalidated normally during invalida teTreeIfNeeded().
1200 virtual void invalidateDisplayItemClients(DisplayItemList*) const; 1199 virtual void invalidateDisplayItemClients(DisplayItemList*) const;
1201 1200
1202 private: 1201 private:
1203 void setLayoutDidGetCalledSinceLastFrame() 1202 void setLayoutDidGetCalledSinceLastFrame()
1204 { 1203 {
1205 m_bitfields.setLayoutDidGetCalledSinceLastFrame(true); 1204 m_bitfields.setLayoutDidGetCalledSinceLastFrame(true);
1206 1205
1207 // Make sure our parent is marked as needing invalidation. 1206 // Make sure our parent is marked as needing invalidation.
1208 // This would be unneeded if we allowed sub-tree invalidation (akin to s ub-tree layouts). 1207 // This would be unneeded if we allowed sub-tree invalidation (akin to s ub-tree layouts).
1209 markContainingBlockChainForPaintInvalidation(); 1208 markContainingBlockChainForPaintInvalidation();
1210 } 1209 }
1211 void clearLayoutDidGetCalledSinceLastFrame() { m_bitfields.setLayoutDidGetCa lledSinceLastFrame(false); } 1210 void clearLayoutDidGetCalledSinceLastFrame() { m_bitfields.setLayoutDidGetCa lledSinceLastFrame(false); }
1212 1211
1213 void invalidatePaintIncludingNonCompositingDescendantsInternal(const LayoutL ayerModelObject* repaintContainer); 1212 void invalidatePaintIncludingNonCompositingDescendantsInternal(const LayoutB oxModelObject* repaintContainer);
1214 1213
1215 LayoutRect previousSelectionRectForPaintInvalidation() const; 1214 LayoutRect previousSelectionRectForPaintInvalidation() const;
1216 void setPreviousSelectionRectForPaintInvalidation(const LayoutRect&); 1215 void setPreviousSelectionRectForPaintInvalidation(const LayoutRect&);
1217 1216
1218 const LayoutLayerModelObject* enclosingCompositedContainer() const; 1217 const LayoutBoxModelObject* enclosingCompositedContainer() const;
1219 1218
1220 LayoutFlowThread* locateFlowThreadContainingBlock() const; 1219 LayoutFlowThread* locateFlowThreadContainingBlock() const;
1221 void removeFromLayoutFlowThread(); 1220 void removeFromLayoutFlowThread();
1222 void removeFromLayoutFlowThreadRecursive(LayoutFlowThread*); 1221 void removeFromLayoutFlowThreadRecursive(LayoutFlowThread*);
1223 1222
1224 LayoutStyle* cachedFirstLineStyle() const; 1223 LayoutStyle* cachedFirstLineStyle() const;
1225 StyleDifference adjustStyleDifference(StyleDifference) const; 1224 StyleDifference adjustStyleDifference(StyleDifference) const;
1226 1225
1227 Color selectionColor(int colorProperty) const; 1226 Color selectionColor(int colorProperty) const;
1228 1227
(...skipping 405 matching lines...) Expand 10 before | Expand all | Expand 10 after
1634 void showTree(const blink::LayoutObject*); 1633 void showTree(const blink::LayoutObject*);
1635 void showLineTree(const blink::LayoutObject*); 1634 void showLineTree(const blink::LayoutObject*);
1636 void showRenderTree(const blink::LayoutObject* object1); 1635 void showRenderTree(const blink::LayoutObject* object1);
1637 // We don't make object2 an optional parameter so that showRenderTree 1636 // We don't make object2 an optional parameter so that showRenderTree
1638 // can be called from gdb easily. 1637 // can be called from gdb easily.
1639 void showRenderTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2); 1638 void showRenderTree(const blink::LayoutObject* object1, const blink::LayoutObjec t* object2);
1640 1639
1641 #endif 1640 #endif
1642 1641
1643 #endif // LayoutObject_h 1642 #endif // LayoutObject_h
OLDNEW
« no previous file with comments | « Source/core/layout/LayoutLayerModelObject.cpp ('k') | Source/core/layout/LayoutObject.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698