| OLD | NEW |
| 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 1500 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1511 containingBlock()->showLineTreeAndMark(0, 0, 0, 0, this); | 1511 containingBlock()->showLineTreeAndMark(0, 0, 0, 0, this); |
| 1512 } | 1512 } |
| 1513 | 1513 |
| 1514 void LayoutObject::showLayoutObject() const | 1514 void LayoutObject::showLayoutObject() const |
| 1515 { | 1515 { |
| 1516 showLayoutObject(0); | 1516 showLayoutObject(0); |
| 1517 } | 1517 } |
| 1518 | 1518 |
| 1519 void LayoutObject::showLayoutObject(int printedCharacters) const | 1519 void LayoutObject::showLayoutObject(int printedCharacters) const |
| 1520 { | 1520 { |
| 1521 printedCharacters += fprintf(stderr, "%s %p", decoratedName().ascii().data()
, this); | 1521 IntRect size = absoluteBoundingBoxRect(); |
| 1522 printedCharacters += fprintf(stderr, "%s %p (%d,%d %dx%d)", decoratedName().
ascii().data(), this, size.x(), size.y(), size.width(), size.height()); |
| 1522 | 1523 |
| 1523 if (isText() && toLayoutText(this)->isTextFragment()) | 1524 if (isText() && toLayoutText(this)->isTextFragment()) |
| 1524 printedCharacters += fprintf(stderr, " \"%s\" ", toLayoutText(this)->tex
t().ascii().data()); | 1525 printedCharacters += fprintf(stderr, " \"%s\" ", toLayoutText(this)->tex
t().ascii().data()); |
| 1525 | 1526 |
| 1526 if (node()) { | 1527 if (node()) { |
| 1527 if (printedCharacters) | 1528 if (printedCharacters) |
| 1528 for (; printedCharacters < showTreeCharacterOffset; printedCharacter
s++) | 1529 for (; printedCharacters < showTreeCharacterOffset; printedCharacter
s++) |
| 1529 fputc(' ', stderr); | 1530 fputc(' ', stderr); |
| 1530 fputc('\t', stderr); | 1531 fputc('\t', stderr); |
| 1532 fputc('\t', stderr); |
| 1531 node()->showNode(); | 1533 node()->showNode(); |
| 1532 } else { | 1534 } else { |
| 1533 fputc('\n', stderr); | 1535 fputc('\n', stderr); |
| 1534 } | 1536 } |
| 1535 } | 1537 } |
| 1536 | 1538 |
| 1537 void LayoutObject::showLayoutTreeAndMark(const LayoutObject* markedObject1, cons
t char* markedLabel1, const LayoutObject* markedObject2, const char* markedLabel
2, int depth) const | 1539 void LayoutObject::showLayoutTreeAndMark(const LayoutObject* markedObject1, cons
t char* markedLabel1, const LayoutObject* markedObject2, const char* markedLabel
2, int depth) const |
| 1538 { | 1540 { |
| 1539 int printedCharacters = 0; | 1541 int printedCharacters = 0; |
| 1540 if (markedObject1 == this && markedLabel1) | 1542 if (markedObject1 == this && markedLabel1) |
| (...skipping 127 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1668 if (diff.needsPaintInvalidationLayer() && !hasLayer()) { | 1670 if (diff.needsPaintInvalidationLayer() && !hasLayer()) { |
| 1669 diff.clearNeedsPaintInvalidation(); | 1671 diff.clearNeedsPaintInvalidation(); |
| 1670 diff.setNeedsPaintInvalidationObject(); | 1672 diff.setNeedsPaintInvalidationObject(); |
| 1671 } | 1673 } |
| 1672 | 1674 |
| 1673 return diff; | 1675 return diff; |
| 1674 } | 1676 } |
| 1675 | 1677 |
| 1676 void LayoutObject::setPseudoStyle(PassRefPtr<ComputedStyle> pseudoStyle) | 1678 void LayoutObject::setPseudoStyle(PassRefPtr<ComputedStyle> pseudoStyle) |
| 1677 { | 1679 { |
| 1678 ASSERT(pseudoStyle->styleType() == BEFORE || pseudoStyle->styleType() == AFT
ER || pseudoStyle->styleType() == FIRST_LETTER); | 1680 ASSERT(pseudoStyle->styleType() == BEFORE || pseudoStyle->styleType() == AFT
ER || pseudoStyle->styleType() == FIRST_LETTER |
| 1681 || (RuntimeEnabledFeatures::listMarkerPseudoElementEnabled() && pseudoSt
yle->styleType() == MARKER)); |
| 1679 | 1682 |
| 1680 // FIXME: We should consider just making all pseudo items use an inherited s
tyle. | 1683 // FIXME: We should consider just making all pseudo items use an inherited s
tyle. |
| 1681 | 1684 |
| 1682 // Images are special and must inherit the pseudoStyle so the width and heig
ht of | 1685 // Images are special and must inherit the pseudoStyle so the width and heig
ht of |
| 1683 // the pseudo element doesn't change the size of the image. In all other cas
es we | 1686 // the pseudo element doesn't change the size of the image. In all other cas
es we |
| 1684 // can just share the style. | 1687 // can just share the style. |
| 1685 // | 1688 // |
| 1686 // Quotes are also LayoutInline, so we need to create an inherited style to
avoid | 1689 // Quotes are also LayoutInline, so we need to create an inherited style to
avoid |
| 1687 // getting an inline with positioning or an invalid display. | 1690 // getting an inline with positioning or an invalid display. |
| 1688 // | 1691 // |
| (...skipping 1047 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 2736 ASSERT(document().styleEngine().usesFirstLineRules()); | 2739 ASSERT(document().styleEngine().usesFirstLineRules()); |
| 2737 | 2740 |
| 2738 if (RefPtr<ComputedStyle> style = firstLineStyleForCachedUncachedType(Cached
, isText() ? parent() : this, m_style.get())) | 2741 if (RefPtr<ComputedStyle> style = firstLineStyleForCachedUncachedType(Cached
, isText() ? parent() : this, m_style.get())) |
| 2739 return style.get(); | 2742 return style.get(); |
| 2740 | 2743 |
| 2741 return m_style.get(); | 2744 return m_style.get(); |
| 2742 } | 2745 } |
| 2743 | 2746 |
| 2744 ComputedStyle* LayoutObject::getCachedPseudoStyle(PseudoId pseudo, const Compute
dStyle* parentStyle) const | 2747 ComputedStyle* LayoutObject::getCachedPseudoStyle(PseudoId pseudo, const Compute
dStyle* parentStyle) const |
| 2745 { | 2748 { |
| 2746 if (pseudo < FIRST_INTERNAL_PSEUDOID && !style()->hasPseudoStyle(pseudo)) | 2749 // FIXME: adding display != LIST_ITEM seems wrong ... wrap in method? |
| 2750 if (pseudo < FIRST_INTERNAL_PSEUDOID && !style()->hasPseudoStyle(pseudo) &&
style()->display() != LIST_ITEM) |
| 2747 return 0; | 2751 return 0; |
| 2748 | 2752 |
| 2749 ComputedStyle* cachedStyle = style()->getCachedPseudoStyle(pseudo); | 2753 ComputedStyle* cachedStyle = style()->getCachedPseudoStyle(pseudo); |
| 2750 if (cachedStyle) | 2754 if (cachedStyle) |
| 2751 return cachedStyle; | 2755 return cachedStyle; |
| 2752 | 2756 |
| 2753 RefPtr<ComputedStyle> result = getUncachedPseudoStyle(PseudoStyleRequest(pse
udo), parentStyle); | 2757 RefPtr<ComputedStyle> result = getUncachedPseudoStyle(PseudoStyleRequest(pse
udo), parentStyle); |
| 2754 if (result) | 2758 if (result) |
| 2755 return mutableStyleRef().addCachedPseudoStyle(result.release()); | 2759 return mutableStyleRef().addCachedPseudoStyle(result.release()); |
| 2756 return 0; | 2760 return 0; |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3050 } | 3054 } |
| 3051 | 3055 |
| 3052 // Everything was anonymous. Give up. | 3056 // Everything was anonymous. Give up. |
| 3053 return PositionWithAffinity(); | 3057 return PositionWithAffinity(); |
| 3054 } | 3058 } |
| 3055 | 3059 |
| 3056 PositionWithAffinity LayoutObject::createPositionWithAffinity(const Position& po
sition) | 3060 PositionWithAffinity LayoutObject::createPositionWithAffinity(const Position& po
sition) |
| 3057 { | 3061 { |
| 3058 if (position.isNotNull()) | 3062 if (position.isNotNull()) |
| 3059 return PositionWithAffinity(position); | 3063 return PositionWithAffinity(position); |
| 3060 | |
| 3061 ASSERT(!node()); | |
| 3062 return createPositionWithAffinity(0, DOWNSTREAM); | 3064 return createPositionWithAffinity(0, DOWNSTREAM); |
| 3063 } | 3065 } |
| 3064 | 3066 |
| 3065 CursorDirective LayoutObject::getCursor(const LayoutPoint&, Cursor&) const | 3067 CursorDirective LayoutObject::getCursor(const LayoutPoint&, Cursor&) const |
| 3066 { | 3068 { |
| 3067 return SetCursorBasedOnStyle; | 3069 return SetCursorBasedOnStyle; |
| 3068 } | 3070 } |
| 3069 | 3071 |
| 3070 bool LayoutObject::canUpdateSelectionOnRootLineBoxes() const | 3072 bool LayoutObject::canUpdateSelectionOnRootLineBoxes() const |
| 3071 { | 3073 { |
| (...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 3261 { | 3263 { |
| 3262 if (object1) { | 3264 if (object1) { |
| 3263 const blink::LayoutObject* root = object1; | 3265 const blink::LayoutObject* root = object1; |
| 3264 while (root->parent()) | 3266 while (root->parent()) |
| 3265 root = root->parent(); | 3267 root = root->parent(); |
| 3266 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); | 3268 root->showLayoutTreeAndMark(object1, "*", object2, "-", 0); |
| 3267 } | 3269 } |
| 3268 } | 3270 } |
| 3269 | 3271 |
| 3270 #endif | 3272 #endif |
| OLD | NEW |