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

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

Issue 665673004: Move selection invalidation to the invalidation phase (Closed) Base URL: https://chromium.googlesource.com/chromium/blink.git@master
Patch Set: Tentative fix, up for slammin' reviews 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
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 980 matching lines...) Expand 10 before | Expand all | Expand 10 after
991 RenderObject* rendererForRootBackground(); 991 RenderObject* rendererForRootBackground();
992 992
993 RespectImageOrientationEnum shouldRespectImageOrientation() const; 993 RespectImageOrientationEnum shouldRespectImageOrientation() const;
994 994
995 bool isRelayoutBoundaryForInspector() const; 995 bool isRelayoutBoundaryForInspector() const;
996 996
997 // The previous paint invalidation rect in the object's previous paint backi ng. 997 // The previous paint invalidation rect in the object's previous paint backi ng.
998 const LayoutRect& previousPaintInvalidationRect() const { return m_previousP aintInvalidationRect; } 998 const LayoutRect& previousPaintInvalidationRect() const { return m_previousP aintInvalidationRect; }
999 void setPreviousPaintInvalidationRect(const LayoutRect& rect) { m_previousPa intInvalidationRect = rect; } 999 void setPreviousPaintInvalidationRect(const LayoutRect& rect) { m_previousPa intInvalidationRect = rect; }
1000 1000
1001 const LayoutRect& previousSelectionRectForPaintInvalidation() const { return m_previousSelectionRectForPaintInvalidation; }
1002 void setpreviousSelectionRectForPaintInvalidation(const LayoutRect& rect) { m_previousSelectionRectForPaintInvalidation = rect; setShouldInvalidateSelection (); }
Xianzhu 2014/10/30 23:35:42 /setprevious/setPrevious/ And it seems better to
Julien - ping for review 2014/10/31 22:31:03 Doh', fixed!
1003
1001 // The previous position of the top-left corner of the object in its previou s paint backing. 1004 // The previous position of the top-left corner of the object in its previou s paint backing.
1002 const LayoutPoint& previousPositionFromPaintInvalidationBacking() const { re turn m_previousPositionFromPaintInvalidationBacking; } 1005 const LayoutPoint& previousPositionFromPaintInvalidationBacking() const { re turn m_previousPositionFromPaintInvalidationBacking; }
1003 void setPreviousPositionFromPaintInvalidationBacking(const LayoutPoint& posi tionFromPaintInvalidationBacking) { m_previousPositionFromPaintInvalidationBacki ng = positionFromPaintInvalidationBacking; } 1006 void setPreviousPositionFromPaintInvalidationBacking(const LayoutPoint& posi tionFromPaintInvalidationBacking) { m_previousPositionFromPaintInvalidationBacki ng = positionFromPaintInvalidationBacking; }
1004 1007
1005 bool shouldDoFullPaintInvalidation() const { return m_bitfields.fullPaintInv alidationReason() != PaintInvalidationNone; } 1008 bool shouldDoFullPaintInvalidation() const { return m_bitfields.fullPaintInv alidationReason() != PaintInvalidationNone; }
1006 void setShouldDoFullPaintInvalidation(PaintInvalidationReason = PaintInvalid ationFull); 1009 void setShouldDoFullPaintInvalidation(PaintInvalidationReason = PaintInvalid ationFull);
1007 void clearShouldDoFullPaintInvalidation() { m_bitfields.setFullPaintInvalida tionReason(PaintInvalidationNone); } 1010 void clearShouldDoFullPaintInvalidation() { m_bitfields.setFullPaintInvalida tionReason(PaintInvalidationNone); }
1008 1011
1009 bool shouldInvalidateOverflowForPaint() const { return m_bitfields.shouldInv alidateOverflowForPaint(); } 1012 bool shouldInvalidateOverflowForPaint() const { return m_bitfields.shouldInv alidateOverflowForPaint(); }
1010 1013
(...skipping 373 matching lines...) Expand 10 before | Expand all | Expand 10 after
1384 void setIsDragging(bool b) { m_bitfields.setIsDragging(b); } 1387 void setIsDragging(bool b) { m_bitfields.setIsDragging(b); }
1385 void setEverHadLayout(bool b) { m_bitfields.setEverHadLayout(b); } 1388 void setEverHadLayout(bool b) { m_bitfields.setEverHadLayout(b); }
1386 void setShouldInvalidateOverflowForPaint(bool b) { m_bitfields.setShouldInva lidateOverflowForPaint(b); } 1389 void setShouldInvalidateOverflowForPaint(bool b) { m_bitfields.setShouldInva lidateOverflowForPaint(b); }
1387 void setSelfNeedsOverflowRecalcAfterStyleChange(bool b) { m_bitfields.setSel fNeedsOverflowRecalcAfterStyleChange(b); } 1390 void setSelfNeedsOverflowRecalcAfterStyleChange(bool b) { m_bitfields.setSel fNeedsOverflowRecalcAfterStyleChange(b); }
1388 void setChildNeedsOverflowRecalcAfterStyleChange(bool b) { m_bitfields.setCh ildNeedsOverflowRecalcAfterStyleChange(b); } 1391 void setChildNeedsOverflowRecalcAfterStyleChange(bool b) { m_bitfields.setCh ildNeedsOverflowRecalcAfterStyleChange(b); }
1389 1392
1390 private: 1393 private:
1391 // Store state between styleWillChange and styleDidChange 1394 // Store state between styleWillChange and styleDidChange
1392 static bool s_affectsParentBlock; 1395 static bool s_affectsParentBlock;
1393 1396
1394 // This stores the paint invalidation rect from the previous layout. 1397 // This stores the paint invalidation rect from the previous frame.
1395 LayoutRect m_previousPaintInvalidationRect; 1398 LayoutRect m_previousPaintInvalidationRect;
1396 1399
1400 // This stores the selection invalidation rect from the previous frame.
1401 LayoutRect m_previousSelectionRectForPaintInvalidation;
Xianzhu 2014/10/30 23:35:42 Seems not the best to add another rect :( As only
dsinclair 2014/10/31 14:03:16 Global maps make things more confusing. Do we know
Xianzhu 2014/10/31 15:52:35 Got the feeling that every bit in RenderObject is
Julien - ping for review 2014/10/31 22:31:03 I think I have found a way to make a map work (did
1402
1397 // This stores the position in the paint invalidation backing's coordinate. 1403 // This stores the position in the paint invalidation backing's coordinate.
1398 // It is used to detect renderer shifts that forces a full invalidation. 1404 // It is used to detect renderer shifts that forces a full invalidation.
1399 LayoutPoint m_previousPositionFromPaintInvalidationBacking; 1405 LayoutPoint m_previousPositionFromPaintInvalidationBacking;
1400 1406
1401 static unsigned s_instanceCount; 1407 static unsigned s_instanceCount;
1402 }; 1408 };
1403 1409
1404 // FIXME: remove this once the render object lifecycle ASSERTS are no longer hit . 1410 // FIXME: remove this once the render object lifecycle ASSERTS are no longer hit .
1405 class DeprecatedDisableModifyRenderTreeStructureAsserts { 1411 class DeprecatedDisableModifyRenderTreeStructureAsserts {
1406 WTF_MAKE_NONCOPYABLE(DeprecatedDisableModifyRenderTreeStructureAsserts); 1412 WTF_MAKE_NONCOPYABLE(DeprecatedDisableModifyRenderTreeStructureAsserts);
(...skipping 206 matching lines...) Expand 10 before | Expand all | Expand 10 after
1613 void showTree(const blink::RenderObject*); 1619 void showTree(const blink::RenderObject*);
1614 void showLineTree(const blink::RenderObject*); 1620 void showLineTree(const blink::RenderObject*);
1615 void showRenderTree(const blink::RenderObject* object1); 1621 void showRenderTree(const blink::RenderObject* object1);
1616 // We don't make object2 an optional parameter so that showRenderTree 1622 // We don't make object2 an optional parameter so that showRenderTree
1617 // can be called from gdb easily. 1623 // can be called from gdb easily.
1618 void showRenderTree(const blink::RenderObject* object1, const blink::RenderObjec t* object2); 1624 void showRenderTree(const blink::RenderObject* object1, const blink::RenderObjec t* object2);
1619 1625
1620 #endif 1626 #endif
1621 1627
1622 #endif // RenderObject_h 1628 #endif // RenderObject_h
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698