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

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

Issue 1224933002: Combine outline and focus ring code paths (Closed) Base URL: svn://svn.chromium.org/blink/trunk
Patch Set: Fix empty focus ring on Mac Created 5 years, 3 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/LayoutInline.cpp ('k') | Source/core/layout/svg/LayoutSVGModelObject.h » ('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) 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) 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) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed. 6 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2011 Apple Inc. All rights reserv ed.
7 * Copyright (C) 2009 Google Inc. All rights reserved. 7 * Copyright (C) 2009 Google Inc. All rights reserved.
8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/) 8 * Copyright (C) 2009 Torch Mobile Inc. All rights reserved. (http://www.torchmo bile.com/)
9 * 9 *
10 * This library is free software; you can redistribute it and/or 10 * This library is free software; you can redistribute it and/or
(...skipping 1388 matching lines...) Expand 10 before | Expand all | Expand 10 after
1399 { 1399 {
1400 // First check for InvalidationLocationChange to avoid it from being hidden by other 1400 // First check for InvalidationLocationChange to avoid it from being hidden by other
1401 // invalidation reasons because we'll need to force check for paint invalida tion for 1401 // invalidation reasons because we'll need to force check for paint invalida tion for
1402 // children when location of this object changed. 1402 // children when location of this object changed.
1403 if (newPositionFromPaintInvalidationBacking != oldPositionFromPaintInvalidat ionBacking) 1403 if (newPositionFromPaintInvalidationBacking != oldPositionFromPaintInvalidat ionBacking)
1404 return PaintInvalidationLocationChange; 1404 return PaintInvalidationLocationChange;
1405 1405
1406 if (shouldDoFullPaintInvalidation()) 1406 if (shouldDoFullPaintInvalidation())
1407 return m_bitfields.fullPaintInvalidationReason(); 1407 return m_bitfields.fullPaintInvalidationReason();
1408 1408
1409 // The focus ring may change because of position change of descendants. For simplicity, 1409 // The outline may change shape because of position change of descendants. F or simplicity,
1410 // just force full paint invalidation if this object is marked for checking paint invalidation 1410 // just force full paint invalidation if this object is marked for checking paint invalidation
1411 // for any reason. 1411 // for any reason.
1412 // TODO(wangxianzhu): extend this to all outlines. 1412 if (styleRef().hasOutline())
1413 if (styleRef().outlineStyleIsAuto())
1414 return PaintInvalidationOutline; 1413 return PaintInvalidationOutline;
1415 1414
1416 // If the bounds are the same then we know that none of the statements below 1415 // If the bounds are the same then we know that none of the statements below
1417 // can match, so we can early out since we will not need to do any 1416 // can match, so we can early out since we will not need to do any
1418 // invalidation. 1417 // invalidation.
1419 if (oldBounds == newBounds) 1418 if (oldBounds == newBounds)
1420 return PaintInvalidationNone; 1419 return PaintInvalidationNone;
1421 1420
1422 // If we shifted, we don't know the exact reason so we are conservative and trigger a full invalidation. Shifting could 1421 // If we shifted, we don't know the exact reason so we are conservative and trigger a full invalidation. Shifting could
1423 // be caused by some layout property (left / top) or some in-flow layoutObje ct inserted / removed before us in the tree. 1422 // be caused by some layout property (left / top) or some in-flow layoutObje ct inserted / removed before us in the tree.
(...skipping 1981 matching lines...) Expand 10 before | Expand all | Expand 10 after
3405 const blink::LayoutObject* root = object1; 3404 const blink::LayoutObject* root = object1;
3406 while (root->parent()) 3405 while (root->parent())
3407 root = root->parent(); 3406 root = root->parent();
3408 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); 3407 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0);
3409 } else { 3408 } else {
3410 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n"); 3409 fprintf(stderr, "Cannot showLayoutTree. Root is (nil)\n");
3411 } 3410 }
3412 } 3411 }
3413 3412
3414 #endif 3413 #endif
OLDNEW
« no previous file with comments | « Source/core/layout/LayoutInline.cpp ('k') | Source/core/layout/svg/LayoutSVGModelObject.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698