OLD | NEW |
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
reserved. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009, 2010 Apple Inc. All rights
reserved. |
4 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. | 4 * Copyright (C) 2011 Adobe Systems Incorporated. All rights reserved. |
5 * | 5 * |
6 * This library is free software; you can redistribute it and/or | 6 * This library is free software; you can redistribute it and/or |
7 * modify it under the terms of the GNU Library General Public | 7 * modify it under the terms of the GNU Library General Public |
8 * License as published by the Free Software Foundation; either | 8 * License as published by the Free Software Foundation; either |
9 * version 2 of the License, or (at your option) any later version. | 9 * version 2 of the License, or (at your option) any later version. |
10 * | 10 * |
(...skipping 384 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
395 } | 395 } |
396 } | 396 } |
397 | 397 |
398 if (diffNeedsRepaintLayer(other)) | 398 if (diffNeedsRepaintLayer(other)) |
399 diff.setNeedsRepaintLayer(); | 399 diff.setNeedsRepaintLayer(); |
400 else if (diffNeedsRepaintObject(other)) | 400 else if (diffNeedsRepaintObject(other)) |
401 diff.setNeedsRepaintObject(); | 401 diff.setNeedsRepaintObject(); |
402 | 402 |
403 changedContextSensitiveProperties = computeChangedContextSensitiveProperties
(other, diff); | 403 changedContextSensitiveProperties = computeChangedContextSensitiveProperties
(other, diff); |
404 | 404 |
405 if (diff.hasNoChange() && diffNeedsRecompositeLayer(other)) | |
406 diff.setNeedsRecompositeLayer(); | |
407 | |
408 // Cursors are not checked, since they will be set appropriately in response
to mouse events, | 405 // Cursors are not checked, since they will be set appropriately in response
to mouse events, |
409 // so they don't need to cause any repaint or layout. | 406 // so they don't need to cause any repaint or layout. |
410 | 407 |
411 // Animations don't need to be checked either. We always set the new style o
n the RenderObject, so we will get a chance to fire off | 408 // Animations don't need to be checked either. We always set the new style o
n the RenderObject, so we will get a chance to fire off |
412 // the resulting transition properly. | 409 // the resulting transition properly. |
413 | 410 |
414 return diff; | 411 return diff; |
415 } | 412 } |
416 | 413 |
417 bool RenderStyle::diffNeedsFullLayoutAndRepaint(const RenderStyle& other) const | 414 bool RenderStyle::diffNeedsFullLayoutAndRepaint(const RenderStyle& other) const |
(...skipping 242 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
660 || rareNonInheritedData->m_objectFit != other.rareNonInheritedData->
m_objectFit | 657 || rareNonInheritedData->m_objectFit != other.rareNonInheritedData->
m_objectFit |
661 || rareNonInheritedData->m_objectPosition != other.rareNonInheritedD
ata->m_objectPosition | 658 || rareNonInheritedData->m_objectPosition != other.rareNonInheritedD
ata->m_objectPosition |
662 || rareNonInheritedData->m_shapeOutside != other.rareNonInheritedDat
a->m_shapeOutside | 659 || rareNonInheritedData->m_shapeOutside != other.rareNonInheritedDat
a->m_shapeOutside |
663 || rareNonInheritedData->m_clipPath != other.rareNonInheritedData->m
_clipPath) | 660 || rareNonInheritedData->m_clipPath != other.rareNonInheritedData->m
_clipPath) |
664 return true; | 661 return true; |
665 } | 662 } |
666 | 663 |
667 return false; | 664 return false; |
668 } | 665 } |
669 | 666 |
670 bool RenderStyle::diffNeedsRecompositeLayer(const RenderStyle& other) const | |
671 { | |
672 if (rareNonInheritedData.get() != other.rareNonInheritedData.get()) { | |
673 if (rareNonInheritedData->m_transformStyle3D != other.rareNonInheritedDa
ta->m_transformStyle3D | |
674 || rareNonInheritedData->m_backfaceVisibility != other.rareNonInheri
tedData->m_backfaceVisibility | |
675 || rareNonInheritedData->m_perspective != other.rareNonInheritedData
->m_perspective | |
676 || rareNonInheritedData->m_perspectiveOriginX != other.rareNonInheri
tedData->m_perspectiveOriginX | |
677 || rareNonInheritedData->m_perspectiveOriginY != other.rareNonInheri
tedData->m_perspectiveOriginY | |
678 || hasWillChangeCompositingHint() != other.hasWillChangeCompositingH
int()) | |
679 return true; | |
680 } | |
681 | |
682 return false; | |
683 } | |
684 | |
685 unsigned RenderStyle::computeChangedContextSensitiveProperties(const RenderStyle
& other, StyleDifference diff) const | 667 unsigned RenderStyle::computeChangedContextSensitiveProperties(const RenderStyle
& other, StyleDifference diff) const |
686 { | 668 { |
687 unsigned changedContextSensitiveProperties = ContextSensitivePropertyNone; | 669 unsigned changedContextSensitiveProperties = ContextSensitivePropertyNone; |
688 | 670 |
689 // StyleAdjuster has ensured that zIndex is non-auto only if it's applicable
. | 671 // StyleAdjuster has ensured that zIndex is non-auto only if it's applicable
. |
690 if (m_box->zIndex() != other.m_box->zIndex() || m_box->hasAutoZIndex() != ot
her.m_box->hasAutoZIndex()) | 672 if (m_box->zIndex() != other.m_box->zIndex() || m_box->hasAutoZIndex() != ot
her.m_box->hasAutoZIndex()) |
691 changedContextSensitiveProperties |= ContextSensitivePropertyZIndex; | 673 changedContextSensitiveProperties |= ContextSensitivePropertyZIndex; |
692 | 674 |
693 if (rareNonInheritedData.get() != other.rareNonInheritedData.get()) { | 675 if (rareNonInheritedData.get() != other.rareNonInheritedData.get()) { |
694 if (!transformDataEquivalent(other)) | 676 if (!transformDataEquivalent(other)) |
(...skipping 1012 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1707 // right | 1689 // right |
1708 radiiSum = radii.topRight().height() + radii.bottomRight().height(); | 1690 radiiSum = radii.topRight().height() + radii.bottomRight().height(); |
1709 if (radiiSum > rect.height()) | 1691 if (radiiSum > rect.height()) |
1710 factor = std::min(rect.height() / radiiSum, factor); | 1692 factor = std::min(rect.height() / radiiSum, factor); |
1711 | 1693 |
1712 ASSERT(factor <= 1); | 1694 ASSERT(factor <= 1); |
1713 return factor; | 1695 return factor; |
1714 } | 1696 } |
1715 | 1697 |
1716 } // namespace WebCore | 1698 } // namespace WebCore |
OLD | NEW |