OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. | 3 * Copyright (C) 2004, 2005, 2006, 2007, 2008, 2009 Apple Inc. All rights reserv
ed. |
4 * | 4 * |
5 * This library is free software; you can redistribute it and/or | 5 * This library is free software; you can redistribute it and/or |
6 * modify it under the terms of the GNU Library General Public | 6 * modify it under the terms of the GNU Library General Public |
7 * License as published by the Free Software Foundation; either | 7 * License as published by the Free Software Foundation; either |
8 * version 2 of the License, or (at your option) any later version. | 8 * version 2 of the License, or (at your option) any later version. |
9 * | 9 * |
10 * This library is distributed in the hope that it will be useful, | 10 * This library is distributed in the hope that it will be useful, |
(...skipping 586 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
597 SelectionMap selectedObjects; | 597 SelectionMap selectedObjects; |
598 | 598 |
599 RenderObject* os = m_selectionStart; | 599 RenderObject* os = m_selectionStart; |
600 RenderObject* stop = rendererAfterPosition(m_selectionEnd, m_selectionEndPos
); | 600 RenderObject* stop = rendererAfterPosition(m_selectionEnd, m_selectionEndPos
); |
601 while (os && os != stop) { | 601 while (os && os != stop) { |
602 if ((os->canBeSelectionLeaf() || os == m_selectionStart || os == m_selec
tionEnd) && os->selectionState() != SelectionNone) { | 602 if ((os->canBeSelectionLeaf() || os == m_selectionStart || os == m_selec
tionEnd) && os->selectionState() != SelectionNone) { |
603 // Blocks are responsible for painting line gaps and margin gaps. Th
ey must be examined as well. | 603 // Blocks are responsible for painting line gaps and margin gaps. Th
ey must be examined as well. |
604 selectedObjects.set(os, adoptPtr(new RenderSelectionInfo(os, clipToV
isibleContent))); | 604 selectedObjects.set(os, adoptPtr(new RenderSelectionInfo(os, clipToV
isibleContent))); |
605 RenderBlock* cb = os->containingBlock(); | 605 RenderBlock* cb = os->containingBlock(); |
606 while (cb && !cb->isRenderView()) { | 606 while (cb && !cb->isRenderView()) { |
607 OwnPtr<RenderSelectionInfo>& blockInfo = selectedObjects.add(cb,
nullptr).iterator->value; | 607 OwnPtr<RenderSelectionInfo>& blockInfo = selectedObjects.add(cb,
nullptr).storedValue->value; |
608 if (blockInfo) | 608 if (blockInfo) |
609 break; | 609 break; |
610 blockInfo = adoptPtr(new RenderSelectionInfo(cb, clipToVisibleCo
ntent)); | 610 blockInfo = adoptPtr(new RenderSelectionInfo(cb, clipToVisibleCo
ntent)); |
611 cb = cb->containingBlock(); | 611 cb = cb->containingBlock(); |
612 } | 612 } |
613 } | 613 } |
614 | 614 |
615 os = os->nextInPreOrder(); | 615 os = os->nextInPreOrder(); |
616 } | 616 } |
617 | 617 |
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
725 RenderObject* stop = rendererAfterPosition(m_selectionEnd, m_selectionEndPos
); | 725 RenderObject* stop = rendererAfterPosition(m_selectionEnd, m_selectionEndPos
); |
726 bool exploringBackwards = false; | 726 bool exploringBackwards = false; |
727 bool continueExploring = os && (os != stop); | 727 bool continueExploring = os && (os != stop); |
728 while (continueExploring) { | 728 while (continueExploring) { |
729 if ((os->canBeSelectionLeaf() || os == m_selectionStart || os == m_selec
tionEnd) && os->selectionState() != SelectionNone) { | 729 if ((os->canBeSelectionLeaf() || os == m_selectionStart || os == m_selec
tionEnd) && os->selectionState() != SelectionNone) { |
730 // Blocks are responsible for painting line gaps and margin gaps. T
hey must be examined as well. | 730 // Blocks are responsible for painting line gaps and margin gaps. T
hey must be examined as well. |
731 oldSelectedObjects.set(os, adoptPtr(new RenderSelectionInfo(os, true
))); | 731 oldSelectedObjects.set(os, adoptPtr(new RenderSelectionInfo(os, true
))); |
732 if (blockRepaintMode == RepaintNewXOROld) { | 732 if (blockRepaintMode == RepaintNewXOROld) { |
733 RenderBlock* cb = os->containingBlock(); | 733 RenderBlock* cb = os->containingBlock(); |
734 while (cb && !cb->isRenderView()) { | 734 while (cb && !cb->isRenderView()) { |
735 OwnPtr<RenderBlockSelectionInfo>& blockInfo = oldSelectedBlo
cks.add(cb, nullptr).iterator->value; | 735 OwnPtr<RenderBlockSelectionInfo>& blockInfo = oldSelectedBlo
cks.add(cb, nullptr).storedValue->value; |
736 if (blockInfo) | 736 if (blockInfo) |
737 break; | 737 break; |
738 blockInfo = adoptPtr(new RenderBlockSelectionInfo(cb)); | 738 blockInfo = adoptPtr(new RenderBlockSelectionInfo(cb)); |
739 cb = cb->containingBlock(); | 739 cb = cb->containingBlock(); |
740 } | 740 } |
741 } | 741 } |
742 } | 742 } |
743 | 743 |
744 os = getNextOrPrevRenderObjectBasedOnDirection(os, stop, continueExplori
ng, exploringBackwards); | 744 os = getNextOrPrevRenderObjectBasedOnDirection(os, stop, continueExplori
ng, exploringBackwards); |
745 } | 745 } |
(...skipping 34 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
780 // Now that the selection state has been updated for the new objects, walk t
hem again and | 780 // Now that the selection state has been updated for the new objects, walk t
hem again and |
781 // put them in the new objects list. | 781 // put them in the new objects list. |
782 o = start; | 782 o = start; |
783 exploringBackwards = false; | 783 exploringBackwards = false; |
784 continueExploring = o && (o != stop); | 784 continueExploring = o && (o != stop); |
785 while (continueExploring) { | 785 while (continueExploring) { |
786 if ((o->canBeSelectionLeaf() || o == start || o == end) && o->selectionS
tate() != SelectionNone) { | 786 if ((o->canBeSelectionLeaf() || o == start || o == end) && o->selectionS
tate() != SelectionNone) { |
787 newSelectedObjects.set(o, adoptPtr(new RenderSelectionInfo(o, true))
); | 787 newSelectedObjects.set(o, adoptPtr(new RenderSelectionInfo(o, true))
); |
788 RenderBlock* cb = o->containingBlock(); | 788 RenderBlock* cb = o->containingBlock(); |
789 while (cb && !cb->isRenderView()) { | 789 while (cb && !cb->isRenderView()) { |
790 OwnPtr<RenderBlockSelectionInfo>& blockInfo = newSelectedBlocks.
add(cb, nullptr).iterator->value; | 790 OwnPtr<RenderBlockSelectionInfo>& blockInfo = newSelectedBlocks.
add(cb, nullptr).storedValue->value; |
791 if (blockInfo) | 791 if (blockInfo) |
792 break; | 792 break; |
793 blockInfo = adoptPtr(new RenderBlockSelectionInfo(cb)); | 793 blockInfo = adoptPtr(new RenderBlockSelectionInfo(cb)); |
794 cb = cb->containingBlock(); | 794 cb = cb->containingBlock(); |
795 } | 795 } |
796 } | 796 } |
797 | 797 |
798 o = getNextOrPrevRenderObjectBasedOnDirection(o, stop, continueExploring
, exploringBackwards); | 798 o = getNextOrPrevRenderObjectBasedOnDirection(o, stop, continueExploring
, exploringBackwards); |
799 } | 799 } |
800 | 800 |
(...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
1136 return true; | 1136 return true; |
1137 if (childStyle->top().isPercent() || childStyle->height().isPercent(
) || childStyle->minHeight().isPercent() || childStyle->maxHeight().isPercent()
|| !childStyle->bottom().isAuto()) | 1137 if (childStyle->top().isPercent() || childStyle->height().isPercent(
) || childStyle->minHeight().isPercent() || childStyle->maxHeight().isPercent()
|| !childStyle->bottom().isAuto()) |
1138 return true; | 1138 return true; |
1139 } | 1139 } |
1140 } | 1140 } |
1141 | 1141 |
1142 return false; | 1142 return false; |
1143 } | 1143 } |
1144 | 1144 |
1145 } // namespace WebCore | 1145 } // namespace WebCore |
OLD | NEW |