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

Side by Side Diff: third_party/WebKit/Source/core/style/ComputedStyle.cpp

Issue 2709693003: Repaint selection when element with ::selection style is recalculated. (Closed)
Patch Set: Fixed review issues Created 3 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
OLDNEW
1 /* 1 /*
2 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org) 2 * Copyright (C) 1999 Antti Koivisto (koivisto@kde.org)
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights
4 * reserved. 4 * reserved.
5 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. 5 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved.
6 * 6 *
7 * This library is free software; you can redistribute it and/or 7 * This library is free software; you can redistribute it and/or
8 * modify it under the terms of the GNU Library General Public 8 * modify it under the terms of the GNU Library General Public
9 * License as published by the Free Software Foundation; either 9 * License as published by the Free Software Foundation; either
10 * version 2 of the License, or (at your option) any later version. 10 * version 2 of the License, or (at your option) any later version.
(...skipping 554 matching lines...) Expand 10 before | Expand all | Expand 10 after
565 if (dependenceOnContentHeightHasChanged(*this, other)) 565 if (dependenceOnContentHeightHasChanged(*this, other))
566 diff.setNeedsFullLayout(); 566 diff.setNeedsFullLayout();
567 else 567 else
568 diff.setNeedsPositionedMovementLayout(); 568 diff.setNeedsPositionedMovementLayout();
569 } 569 }
570 570
571 if (diffNeedsPaintInvalidationSubtree(other)) 571 if (diffNeedsPaintInvalidationSubtree(other))
572 diff.setNeedsPaintInvalidationSubtree(); 572 diff.setNeedsPaintInvalidationSubtree();
573 else if (diffNeedsPaintInvalidationObject(other)) 573 else if (diffNeedsPaintInvalidationObject(other))
574 diff.setNeedsPaintInvalidationObject(); 574 diff.setNeedsPaintInvalidationObject();
575 else if (diffNeedsPaintInvalidationSelection(other))
576 diff.setNeedsPaintInvalidationSelection();
575 577
576 updatePropertySpecificDifferences(other, diff); 578 updatePropertySpecificDifferences(other, diff);
577 579
578 // The following condition needs to be at last, because it may depend on 580 // The following condition needs to be at last, because it may depend on
579 // conditions in diff computed above. 581 // conditions in diff computed above.
580 if (scrollAnchorDisablingPropertyChanged(other, diff)) 582 if (scrollAnchorDisablingPropertyChanged(other, diff))
581 diff.setScrollAnchorDisablingPropertyChanged(); 583 diff.setScrollAnchorDisablingPropertyChanged();
582 584
583 // Cursors are not checked, since they will be set appropriately in response 585 // Cursors are not checked, since they will be set appropriately in response
584 // to mouse events, so they don't need to cause any paint invalidation or 586 // to mouse events, so they don't need to cause any paint invalidation or
(...skipping 428 matching lines...) Expand 10 before | Expand all | Expand 10 after
1013 for (const AtomicString& property : 1015 for (const AtomicString& property :
1014 *value->customInvalidationProperties()) { 1016 *value->customInvalidationProperties()) {
1015 if (!dataEquivalent(getVariable(property), other.getVariable(property))) 1017 if (!dataEquivalent(getVariable(property), other.getVariable(property)))
1016 return true; 1018 return true;
1017 } 1019 }
1018 } 1020 }
1019 1021
1020 return false; 1022 return false;
1021 } 1023 }
1022 1024
1025 bool ComputedStyle::diffNeedsPaintInvalidationSelection(
1026 const ComputedStyle& other) const {
1027 return hasPseudoStyle(PseudoIdSelection) ||
1028 other.hasPseudoStyle(PseudoIdSelection);
1029 }
1030
1023 void ComputedStyle::updatePropertySpecificDifferences( 1031 void ComputedStyle::updatePropertySpecificDifferences(
1024 const ComputedStyle& other, 1032 const ComputedStyle& other,
1025 StyleDifference& diff) const { 1033 StyleDifference& diff) const {
1026 if (m_box->zIndex() != other.m_box->zIndex() || 1034 if (m_box->zIndex() != other.m_box->zIndex() ||
1027 isStackingContext() != other.isStackingContext()) 1035 isStackingContext() != other.isStackingContext())
1028 diff.setZIndexChanged(); 1036 diff.setZIndexChanged();
1029 1037
1030 if (m_rareNonInheritedData.get() != other.m_rareNonInheritedData.get()) { 1038 if (m_rareNonInheritedData.get() != other.m_rareNonInheritedData.get()) {
1031 if (!transformDataEquivalent(other) || 1039 if (!transformDataEquivalent(other) ||
1032 m_rareNonInheritedData->m_perspective != 1040 m_rareNonInheritedData->m_perspective !=
(...skipping 1437 matching lines...) Expand 10 before | Expand all | Expand 10 after
2470 if (value < 0) 2478 if (value < 0)
2471 fvalue -= 0.5f; 2479 fvalue -= 0.5f;
2472 else 2480 else
2473 fvalue += 0.5f; 2481 fvalue += 0.5f;
2474 } 2482 }
2475 2483
2476 return roundForImpreciseConversion<int>(fvalue / zoomFactor); 2484 return roundForImpreciseConversion<int>(fvalue / zoomFactor);
2477 } 2485 }
2478 2486
2479 } // namespace blink 2487 } // namespace blink
OLDNEW
« no previous file with comments | « third_party/WebKit/Source/core/style/ComputedStyle.h ('k') | third_party/WebKit/Source/core/style/StyleDifference.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698