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 451 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
462 return true; | 462 return true; |
463 | 463 |
464 if (rareNonInheritedData->m_deprecatedFlexibleBox.get() != other.rareNon
InheritedData->m_deprecatedFlexibleBox.get() | 464 if (rareNonInheritedData->m_deprecatedFlexibleBox.get() != other.rareNon
InheritedData->m_deprecatedFlexibleBox.get() |
465 && *rareNonInheritedData->m_deprecatedFlexibleBox.get() != *other.ra
reNonInheritedData->m_deprecatedFlexibleBox.get()) | 465 && *rareNonInheritedData->m_deprecatedFlexibleBox.get() != *other.ra
reNonInheritedData->m_deprecatedFlexibleBox.get()) |
466 return true; | 466 return true; |
467 | 467 |
468 if (rareNonInheritedData->m_flexibleBox.get() != other.rareNonInheritedD
ata->m_flexibleBox.get() | 468 if (rareNonInheritedData->m_flexibleBox.get() != other.rareNonInheritedD
ata->m_flexibleBox.get() |
469 && *rareNonInheritedData->m_flexibleBox.get() != *other.rareNonInher
itedData->m_flexibleBox.get()) | 469 && *rareNonInheritedData->m_flexibleBox.get() != *other.rareNonInher
itedData->m_flexibleBox.get()) |
470 return true; | 470 return true; |
471 | 471 |
472 // FIXME: We should add an optimized form of layout that just recomputes
visual overflow. | |
473 if (!rareNonInheritedData->shadowDataEquivalent(*other.rareNonInheritedD
ata.get())) | |
474 return true; | |
475 | |
476 if (!rareNonInheritedData->reflectionDataEquivalent(*other.rareNonInheri
tedData.get())) | 472 if (!rareNonInheritedData->reflectionDataEquivalent(*other.rareNonInheri
tedData.get())) |
477 return true; | 473 return true; |
478 | 474 |
479 if (rareNonInheritedData->m_multiCol.get() != other.rareNonInheritedData
->m_multiCol.get() | 475 if (rareNonInheritedData->m_multiCol.get() != other.rareNonInheritedData
->m_multiCol.get() |
480 && *rareNonInheritedData->m_multiCol.get() != *other.rareNonInherite
dData->m_multiCol.get()) | 476 && *rareNonInheritedData->m_multiCol.get() != *other.rareNonInherite
dData->m_multiCol.get()) |
481 return true; | 477 return true; |
482 | 478 |
483 // If the counter directives change, trigger a relayout to re-calculate
counter values and rebuild the counter node tree. | 479 // If the counter directives change, trigger a relayout to re-calculate
counter values and rebuild the counter node tree. |
484 const CounterDirectiveMap* mapA = rareNonInheritedData->m_counterDirecti
ves.get(); | 480 const CounterDirectiveMap* mapA = rareNonInheritedData->m_counterDirecti
ves.get(); |
485 const CounterDirectiveMap* mapB = other.rareNonInheritedData->m_counterD
irectives.get(); | 481 const CounterDirectiveMap* mapB = other.rareNonInheritedData->m_counterD
irectives.get(); |
(...skipping 95 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
581 return true; | 577 return true; |
582 } else if (noninherited_flags.effectiveDisplay == LIST_ITEM) { | 578 } else if (noninherited_flags.effectiveDisplay == LIST_ITEM) { |
583 if (inherited_flags._list_style_type != other.inherited_flags._list_styl
e_type | 579 if (inherited_flags._list_style_type != other.inherited_flags._list_styl
e_type |
584 || inherited_flags._list_style_position != other.inherited_flags._li
st_style_position) | 580 || inherited_flags._list_style_position != other.inherited_flags._li
st_style_position) |
585 return true; | 581 return true; |
586 } | 582 } |
587 | 583 |
588 if ((visibility() == COLLAPSE) != (other.visibility() == COLLAPSE)) | 584 if ((visibility() == COLLAPSE) != (other.visibility() == COLLAPSE)) |
589 return true; | 585 return true; |
590 | 586 |
591 if (!m_background->outline().visuallyEqual(other.m_background->outline())) { | |
592 // FIXME: We only really need to recompute the overflow but we don't hav
e an optimized layout for it. | |
593 return true; | |
594 } | |
595 | |
596 // Movement of non-static-positioned object is special cased in RenderStyle:
:visualInvalidationDiff(). | 587 // Movement of non-static-positioned object is special cased in RenderStyle:
:visualInvalidationDiff(). |
597 | 588 |
598 return false; | 589 return false; |
599 } | 590 } |
600 | 591 |
601 bool RenderStyle::diffNeedsFullLayout(const RenderStyle& other) const | 592 bool RenderStyle::diffNeedsFullLayout(const RenderStyle& other) const |
602 { | 593 { |
603 if (m_box.get() != other.m_box.get()) { | 594 if (m_box.get() != other.m_box.get()) { |
604 if (m_box->width() != other.m_box->width() | 595 if (m_box->width() != other.m_box->width() |
605 || m_box->minWidth() != other.m_box->minWidth() | 596 || m_box->minWidth() != other.m_box->minWidth() |
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
649 if (rareNonInheritedData->m_mask != other.rareNonInheritedData->m_mask | 640 if (rareNonInheritedData->m_mask != other.rareNonInheritedData->m_mask |
650 || rareNonInheritedData->m_maskBoxImage != other.rareNonInheritedDat
a->m_maskBoxImage) | 641 || rareNonInheritedData->m_maskBoxImage != other.rareNonInheritedDat
a->m_maskBoxImage) |
651 return true; | 642 return true; |
652 } | 643 } |
653 | 644 |
654 return false; | 645 return false; |
655 } | 646 } |
656 | 647 |
657 bool RenderStyle::diffNeedsPaintInvalidationObject(const RenderStyle& other) con
st | 648 bool RenderStyle::diffNeedsPaintInvalidationObject(const RenderStyle& other) con
st |
658 { | 649 { |
| 650 if (!m_background->outline().visuallyEqual(other.m_background->outline())) |
| 651 return true; |
| 652 |
659 if (inherited_flags._visibility != other.inherited_flags._visibility | 653 if (inherited_flags._visibility != other.inherited_flags._visibility |
660 || inherited_flags.m_printColorAdjust != other.inherited_flags.m_printCo
lorAdjust | 654 || inherited_flags.m_printColorAdjust != other.inherited_flags.m_printCo
lorAdjust |
661 || inherited_flags._insideLink != other.inherited_flags._insideLink | 655 || inherited_flags._insideLink != other.inherited_flags._insideLink |
662 || !surround->border.visuallyEqual(other.surround->border) | 656 || !surround->border.visuallyEqual(other.surround->border) |
663 || !m_background->visuallyEqual(*other.m_background)) | 657 || !m_background->visuallyEqual(*other.m_background)) |
664 return true; | 658 return true; |
665 | 659 |
666 if (rareInheritedData.get() != other.rareInheritedData.get()) { | 660 if (rareInheritedData.get() != other.rareInheritedData.get()) { |
667 if (rareInheritedData->userModify != other.rareInheritedData->userModify | 661 if (rareInheritedData->userModify != other.rareInheritedData->userModify |
668 || rareInheritedData->userSelect != other.rareInheritedData->userSel
ect | 662 || rareInheritedData->userSelect != other.rareInheritedData->userSel
ect |
669 || rareInheritedData->m_imageRendering != other.rareInheritedData->m
_imageRendering) | 663 || rareInheritedData->m_imageRendering != other.rareInheritedData->m
_imageRendering) |
670 return true; | 664 return true; |
671 } | 665 } |
672 | 666 |
673 if (rareNonInheritedData.get() != other.rareNonInheritedData.get()) { | 667 if (rareNonInheritedData.get() != other.rareNonInheritedData.get()) { |
674 if (rareNonInheritedData->userDrag != other.rareNonInheritedData->userDr
ag | 668 if (rareNonInheritedData->userDrag != other.rareNonInheritedData->userDr
ag |
675 || rareNonInheritedData->m_objectFit != other.rareNonInheritedData->
m_objectFit | 669 || rareNonInheritedData->m_objectFit != other.rareNonInheritedData->
m_objectFit |
676 || rareNonInheritedData->m_objectPosition != other.rareNonInheritedD
ata->m_objectPosition | 670 || rareNonInheritedData->m_objectPosition != other.rareNonInheritedD
ata->m_objectPosition |
| 671 || !rareNonInheritedData->shadowDataEquivalent(*other.rareNonInherit
edData.get()) |
677 || !dataEquivalent(rareNonInheritedData->m_shapeOutside, other.rareN
onInheritedData->m_shapeOutside) | 672 || !dataEquivalent(rareNonInheritedData->m_shapeOutside, other.rareN
onInheritedData->m_shapeOutside) |
678 || !dataEquivalent(rareNonInheritedData->m_clipPath, other.rareNonIn
heritedData->m_clipPath)) | 673 || !dataEquivalent(rareNonInheritedData->m_clipPath, other.rareNonIn
heritedData->m_clipPath)) |
679 return true; | 674 return true; |
680 } | 675 } |
681 | 676 |
682 return false; | 677 return false; |
683 } | 678 } |
684 | 679 |
685 void RenderStyle::updatePropertySpecificDifferences(const RenderStyle& other, St
yleDifference& diff) const | 680 void RenderStyle::updatePropertySpecificDifferences(const RenderStyle& other, St
yleDifference& diff) const |
686 { | 681 { |
687 // StyleAdjuster has ensured that zIndex is non-auto only if it's applicable
. | 682 // StyleAdjuster has ensured that zIndex is non-auto only if it's applicable
. |
688 if (m_box->zIndex() != other.m_box->zIndex() || m_box->hasAutoZIndex() != ot
her.m_box->hasAutoZIndex()) | 683 if (m_box->zIndex() != other.m_box->zIndex() || m_box->hasAutoZIndex() != ot
her.m_box->hasAutoZIndex()) |
689 diff.setZIndexChanged(); | 684 diff.setZIndexChanged(); |
690 | 685 |
691 if (rareNonInheritedData.get() != other.rareNonInheritedData.get()) { | 686 if (rareNonInheritedData.get() != other.rareNonInheritedData.get()) { |
692 if (!transformDataEquivalent(other)) | 687 if (!transformDataEquivalent(other)) |
693 diff.setTransformChanged(); | 688 diff.setTransformChanged(); |
694 | 689 |
695 if (rareNonInheritedData->opacity != other.rareNonInheritedData->opacity
) | 690 if (rareNonInheritedData->opacity != other.rareNonInheritedData->opacity
) |
696 diff.setOpacityChanged(); | 691 diff.setOpacityChanged(); |
697 | 692 |
698 if (rareNonInheritedData->m_filter != other.rareNonInheritedData->m_filt
er) | 693 if (rareNonInheritedData->m_filter != other.rareNonInheritedData->m_filt
er) |
699 diff.setFilterChanged(); | 694 diff.setFilterChanged(); |
| 695 |
| 696 if (!rareNonInheritedData->shadowDataEquivalent(*other.rareNonInheritedD
ata.get())) |
| 697 diff.setVisualOverflowChanged(); |
700 } | 698 } |
701 | 699 |
| 700 if (!m_background->outline().visuallyEqual(other.m_background->outline()) ||
!surround->border.visualOverflowEqual(other.surround->border)) |
| 701 diff.setVisualOverflowChanged(); |
| 702 |
702 if (!diff.needsPaintInvalidation()) { | 703 if (!diff.needsPaintInvalidation()) { |
703 if (inherited->color != other.inherited->color | 704 if (inherited->color != other.inherited->color |
704 || inherited_flags.m_textUnderline != other.inherited_flags.m_textUn
derline | 705 || inherited_flags.m_textUnderline != other.inherited_flags.m_textUn
derline |
705 || visual->textDecoration != other.visual->textDecoration) { | 706 || visual->textDecoration != other.visual->textDecoration) { |
706 diff.setTextOrColorChanged(); | 707 diff.setTextOrColorChanged(); |
707 } else if (rareNonInheritedData.get() != other.rareNonInheritedData.get(
)) { | 708 } else if (rareNonInheritedData.get() != other.rareNonInheritedData.get(
)) { |
708 if (rareNonInheritedData->m_textDecorationStyle != other.rareNonInhe
ritedData->m_textDecorationStyle | 709 if (rareNonInheritedData->m_textDecorationStyle != other.rareNonInhe
ritedData->m_textDecorationStyle |
709 || rareNonInheritedData->m_textDecorationColor != other.rareNonI
nheritedData->m_textDecorationColor) | 710 || rareNonInheritedData->m_textDecorationColor != other.rareNonI
nheritedData->m_textDecorationColor) |
710 diff.setTextOrColorChanged(); | 711 diff.setTextOrColorChanged(); |
711 } else if (rareInheritedData.get() != other.rareInheritedData.get()) { | 712 } else if (rareInheritedData.get() != other.rareInheritedData.get()) { |
(...skipping 1042 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1754 horizontal || includeLogicalRightEdge); | 1755 horizontal || includeLogicalRightEdge); |
1755 | 1756 |
1756 edges[BSLeft] = BorderEdge(borderLeftWidth(), | 1757 edges[BSLeft] = BorderEdge(borderLeftWidth(), |
1757 visitedDependentColor(CSSPropertyBorderLeftColor), | 1758 visitedDependentColor(CSSPropertyBorderLeftColor), |
1758 borderLeftStyle(), | 1759 borderLeftStyle(), |
1759 borderLeftIsTransparent(), | 1760 borderLeftIsTransparent(), |
1760 !horizontal || includeLogicalLeftEdge); | 1761 !horizontal || includeLogicalLeftEdge); |
1761 } | 1762 } |
1762 | 1763 |
1763 } // namespace blink | 1764 } // namespace blink |
OLD | NEW |