| 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 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights
reserved. | 4 * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. 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 569 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 580 for (LayoutObject* curr = firstChild(); curr; curr = curr->nextSibling()) { | 580 for (LayoutObject* curr = firstChild(); curr; curr = curr->nextSibling()) { |
| 581 if (curr->isFloatingOrOutOfFlowPositioned()) | 581 if (curr->isFloatingOrOutOfFlowPositioned()) |
| 582 continue; | 582 continue; |
| 583 | 583 |
| 584 // We want to get the margin box in the inline direction, and then use o
ur font ascent/descent in the block | 584 // We want to get the margin box in the inline direction, and then use o
ur font ascent/descent in the block |
| 585 // direction (aligned to the root box's baseline). | 585 // direction (aligned to the root box's baseline). |
| 586 if (curr->isBox()) { | 586 if (curr->isBox()) { |
| 587 LayoutBox* currBox = toLayoutBox(curr); | 587 LayoutBox* currBox = toLayoutBox(curr); |
| 588 if (currBox->inlineBoxWrapper()) { | 588 if (currBox->inlineBoxWrapper()) { |
| 589 RootInlineBox& rootBox = currBox->inlineBoxWrapper()->root(); | 589 RootInlineBox& rootBox = currBox->inlineBoxWrapper()->root(); |
| 590 int logicalTop = rootBox.logicalTop() + (rootBox.renderer().styl
e(rootBox.isFirstLineStyle())->font().fontMetrics().ascent() - container->style(
rootBox.isFirstLineStyle())->font().fontMetrics().ascent()); | 590 int logicalTop = rootBox.logicalTop() + (rootBox.layoutObject().
style(rootBox.isFirstLineStyle())->font().fontMetrics().ascent() - container->st
yle(rootBox.isFirstLineStyle())->font().fontMetrics().ascent()); |
| 591 int logicalHeight = container->style(rootBox.isFirstLineStyle())
->font().fontMetrics().height(); | 591 int logicalHeight = container->style(rootBox.isFirstLineStyle())
->font().fontMetrics().height(); |
| 592 if (isHorizontal) | 592 if (isHorizontal) |
| 593 yield(FloatRect(currBox->inlineBoxWrapper()->x() - currBox->
marginLeft(), logicalTop, (currBox->size().width() + currBox->marginWidth()).toF
loat(), logicalHeight)); | 593 yield(FloatRect(currBox->inlineBoxWrapper()->x() - currBox->
marginLeft(), logicalTop, (currBox->size().width() + currBox->marginWidth()).toF
loat(), logicalHeight)); |
| 594 else | 594 else |
| 595 yield(FloatRect(logicalTop, currBox->inlineBoxWrapper()->y()
- currBox->marginTop(), logicalHeight, (currBox->size().height() + currBox->mar
ginHeight()).toFloat())); | 595 yield(FloatRect(logicalTop, currBox->inlineBoxWrapper()->y()
- currBox->marginTop(), logicalHeight, (currBox->size().height() + currBox->mar
ginHeight()).toFloat())); |
| 596 } | 596 } |
| 597 } else if (curr->isLayoutInline()) { | 597 } else if (curr->isLayoutInline()) { |
| 598 // If the child doesn't need line boxes either, then we can recur. | 598 // If the child doesn't need line boxes either, then we can recur. |
| 599 LayoutInline* currInline = toLayoutInline(curr); | 599 LayoutInline* currInline = toLayoutInline(curr); |
| 600 if (!currInline->alwaysCreateLineBoxes()) { | 600 if (!currInline->alwaysCreateLineBoxes()) { |
| 601 currInline->generateCulledLineBoxRects(yield, container); | 601 currInline->generateCulledLineBoxRects(yield, container); |
| 602 } else { | 602 } else { |
| 603 for (InlineFlowBox* childLine = currInline->firstLineBox(); chil
dLine; childLine = childLine->nextLineBox()) { | 603 for (InlineFlowBox* childLine = currInline->firstLineBox(); chil
dLine; childLine = childLine->nextLineBox()) { |
| 604 RootInlineBox& rootBox = childLine->root(); | 604 RootInlineBox& rootBox = childLine->root(); |
| 605 int logicalTop = rootBox.logicalTop() + (rootBox.renderer().
style(rootBox.isFirstLineStyle())->font().fontMetrics().ascent() - container->st
yle(rootBox.isFirstLineStyle())->font().fontMetrics().ascent()); | 605 int logicalTop = rootBox.logicalTop() + (rootBox.layoutObjec
t().style(rootBox.isFirstLineStyle())->font().fontMetrics().ascent() - container
->style(rootBox.isFirstLineStyle())->font().fontMetrics().ascent()); |
| 606 int logicalHeight = container->style(rootBox.isFirstLineStyl
e())->font().fontMetrics().height(); | 606 int logicalHeight = container->style(rootBox.isFirstLineStyl
e())->font().fontMetrics().height(); |
| 607 if (isHorizontal) { | 607 if (isHorizontal) { |
| 608 yield(FloatRect(childLine->x() - childLine->marginLogica
lLeft(), | 608 yield(FloatRect(childLine->x() - childLine->marginLogica
lLeft(), |
| 609 logicalTop, | 609 logicalTop, |
| 610 childLine->logicalWidth() + childLine->marginLogical
Left() + childLine->marginLogicalRight(), | 610 childLine->logicalWidth() + childLine->marginLogical
Left() + childLine->marginLogicalRight(), |
| 611 logicalHeight)); | 611 logicalHeight)); |
| 612 } else { | 612 } else { |
| 613 yield(FloatRect(logicalTop, | 613 yield(FloatRect(logicalTop, |
| 614 childLine->y() - childLine->marginLogicalLeft(), | 614 childLine->y() - childLine->marginLogicalLeft(), |
| 615 logicalHeight, | 615 logicalHeight, |
| 616 childLine->logicalWidth() + childLine->marginLogical
Left() + childLine->marginLogicalRight())); | 616 childLine->logicalWidth() + childLine->marginLogical
Left() + childLine->marginLogicalRight())); |
| 617 } | 617 } |
| 618 } | 618 } |
| 619 } | 619 } |
| 620 } else if (curr->isText()) { | 620 } else if (curr->isText()) { |
| 621 LayoutText* currText = toLayoutText(curr); | 621 LayoutText* currText = toLayoutText(curr); |
| 622 for (InlineTextBox* childText = currText->firstTextBox(); childText;
childText = childText->nextTextBox()) { | 622 for (InlineTextBox* childText = currText->firstTextBox(); childText;
childText = childText->nextTextBox()) { |
| 623 RootInlineBox& rootBox = childText->root(); | 623 RootInlineBox& rootBox = childText->root(); |
| 624 int logicalTop = rootBox.logicalTop() + (rootBox.renderer().styl
e(rootBox.isFirstLineStyle())->font().fontMetrics().ascent() - container->style(
rootBox.isFirstLineStyle())->font().fontMetrics().ascent()); | 624 int logicalTop = rootBox.logicalTop() + (rootBox.layoutObject().
style(rootBox.isFirstLineStyle())->font().fontMetrics().ascent() - container->st
yle(rootBox.isFirstLineStyle())->font().fontMetrics().ascent()); |
| 625 int logicalHeight = container->style(rootBox.isFirstLineStyle())
->font().fontMetrics().height(); | 625 int logicalHeight = container->style(rootBox.isFirstLineStyle())
->font().fontMetrics().height(); |
| 626 if (isHorizontal) | 626 if (isHorizontal) |
| 627 yield(FloatRect(childText->x(), logicalTop, childText->logic
alWidth(), logicalHeight)); | 627 yield(FloatRect(childText->x(), logicalTop, childText->logic
alWidth(), logicalHeight)); |
| 628 else | 628 else |
| 629 yield(FloatRect(logicalTop, childText->y(), logicalHeight, c
hildText->logicalWidth())); | 629 yield(FloatRect(logicalTop, childText->y(), logicalHeight, c
hildText->logicalWidth())); |
| 630 } | 630 } |
| 631 } | 631 } |
| 632 } | 632 } |
| 633 } | 633 } |
| 634 | 634 |
| (...skipping 609 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1244 { | 1244 { |
| 1245 if (result.innerNode()) | 1245 if (result.innerNode()) |
| 1246 return; | 1246 return; |
| 1247 | 1247 |
| 1248 Node* n = node(); | 1248 Node* n = node(); |
| 1249 LayoutPoint localPoint(point); | 1249 LayoutPoint localPoint(point); |
| 1250 if (n) { | 1250 if (n) { |
| 1251 if (isInlineElementContinuation()) { | 1251 if (isInlineElementContinuation()) { |
| 1252 // We're in the continuation of a split inline. Adjust our local po
int to be in the coordinate space | 1252 // We're in the continuation of a split inline. Adjust our local po
int to be in the coordinate space |
| 1253 // of the principal renderer's containing block. This will end up b
eing the innerNonSharedNode. | 1253 // of the principal renderer's containing block. This will end up b
eing the innerNonSharedNode. |
| 1254 LayoutBlock* firstBlock = n->renderer()->containingBlock(); | 1254 LayoutBlock* firstBlock = n->layoutObject()->containingBlock(); |
| 1255 | 1255 |
| 1256 // Get our containing block. | 1256 // Get our containing block. |
| 1257 LayoutBox* block = containingBlock(); | 1257 LayoutBox* block = containingBlock(); |
| 1258 localPoint.moveBy(block->location() - firstBlock->locationOffset()); | 1258 localPoint.moveBy(block->location() - firstBlock->locationOffset()); |
| 1259 } | 1259 } |
| 1260 | 1260 |
| 1261 result.setInnerNode(n); | 1261 result.setInnerNode(n); |
| 1262 if (!result.innerNonSharedNode()) | 1262 if (!result.innerNonSharedNode()) |
| 1263 result.setInnerNonSharedNode(n); | 1263 result.setInnerNonSharedNode(n); |
| 1264 result.setLocalPoint(localPoint); | 1264 result.setLocalPoint(localPoint); |
| (...skipping 190 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1455 } | 1455 } |
| 1456 | 1456 |
| 1457 void LayoutInline::invalidateDisplayItemClients(const LayoutBoxModelObject& pain
tInvalidationContainer) const | 1457 void LayoutInline::invalidateDisplayItemClients(const LayoutBoxModelObject& pain
tInvalidationContainer) const |
| 1458 { | 1458 { |
| 1459 LayoutBoxModelObject::invalidateDisplayItemClients(paintInvalidationContaine
r); | 1459 LayoutBoxModelObject::invalidateDisplayItemClients(paintInvalidationContaine
r); |
| 1460 for (InlineFlowBox* box = firstLineBox(); box; box = box->nextLineBox()) | 1460 for (InlineFlowBox* box = firstLineBox(); box; box = box->nextLineBox()) |
| 1461 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(box->dis
playItemClient()); | 1461 paintInvalidationContainer.invalidateDisplayItemClientOnBacking(box->dis
playItemClient()); |
| 1462 } | 1462 } |
| 1463 | 1463 |
| 1464 } // namespace blink | 1464 } // namespace blink |
| OLD | NEW |