| 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) 2007 David Smith (catfish.man@gmail.com) | 4  *           (C) 2007 David Smith (catfish.man@gmail.com) | 
| 5  * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
       All rights reserved. | 5  * Copyright (C) 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Apple Inc.
       All rights reserved. | 
| 6  * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 6  * Copyright (C) Research In Motion Limited 2010. All rights reserved. | 
| 7  * | 7  * | 
| 8  * This library is free software; you can redistribute it and/or | 8  * This library is free software; you can redistribute it and/or | 
| 9  * modify it under the terms of the GNU Library General Public | 9  * modify it under the terms of the GNU Library General Public | 
| 10  * License as published by the Free Software Foundation; either | 10  * License as published by the Free Software Foundation; either | 
| (...skipping 3028 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3039     } | 3039     } | 
| 3040 | 3040 | 
| 3041     return false; | 3041     return false; | 
| 3042 } | 3042 } | 
| 3043 | 3043 | 
| 3044 Position RenderBlock::positionForBox(InlineBox *box, bool start) const | 3044 Position RenderBlock::positionForBox(InlineBox *box, bool start) const | 
| 3045 { | 3045 { | 
| 3046     if (!box) | 3046     if (!box) | 
| 3047         return Position(); | 3047         return Position(); | 
| 3048 | 3048 | 
| 3049     if (!box->renderer()->nonPseudoNode()) | 3049     if (!box->renderer().nonPseudoNode()) | 
| 3050         return createLegacyEditingPosition(nonPseudoNode(), start ? caretMinOffs
      et() : caretMaxOffset()); | 3050         return createLegacyEditingPosition(nonPseudoNode(), start ? caretMinOffs
      et() : caretMaxOffset()); | 
| 3051 | 3051 | 
| 3052     if (!box->isInlineTextBox()) | 3052     if (!box->isInlineTextBox()) | 
| 3053         return createLegacyEditingPosition(box->renderer()->nonPseudoNode(), sta
      rt ? box->renderer()->caretMinOffset() : box->renderer()->caretMaxOffset()); | 3053         return createLegacyEditingPosition(box->renderer().nonPseudoNode(), star
      t ? box->renderer().caretMinOffset() : box->renderer().caretMaxOffset()); | 
| 3054 | 3054 | 
| 3055     InlineTextBox* textBox = toInlineTextBox(box); | 3055     InlineTextBox* textBox = toInlineTextBox(box); | 
| 3056     return createLegacyEditingPosition(box->renderer()->nonPseudoNode(), start ?
       textBox->start() : textBox->start() + textBox->len()); | 3056     return createLegacyEditingPosition(box->renderer().nonPseudoNode(), start ? 
      textBox->start() : textBox->start() + textBox->len()); | 
| 3057 } | 3057 } | 
| 3058 | 3058 | 
| 3059 static inline bool isEditingBoundary(RenderObject* ancestor, RenderObject* child
      ) | 3059 static inline bool isEditingBoundary(RenderObject* ancestor, RenderObject* child
      ) | 
| 3060 { | 3060 { | 
| 3061     ASSERT(!ancestor || ancestor->nonPseudoNode()); | 3061     ASSERT(!ancestor || ancestor->nonPseudoNode()); | 
| 3062     ASSERT(child && child->nonPseudoNode()); | 3062     ASSERT(child && child->nonPseudoNode()); | 
| 3063     return !ancestor || !ancestor->parent() || (ancestor->hasLayer() && ancestor
      ->parent()->isRenderView()) | 3063     return !ancestor || !ancestor->parent() || (ancestor->hasLayer() && ancestor
      ->parent()->isRenderView()) | 
| 3064         || ancestor->nonPseudoNode()->rendererIsEditable() == child->nonPseudoNo
      de()->rendererIsEditable(); | 3064         || ancestor->nonPseudoNode()->rendererIsEditable() == child->nonPseudoNo
      de()->rendererIsEditable(); | 
| 3065 } | 3065 } | 
| 3066 | 3066 | 
| (...skipping 94 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 3161                 } | 3161                 } | 
| 3162                 // y coordinate is above first root line box, so return the star
      t of the first | 3162                 // y coordinate is above first root line box, so return the star
      t of the first | 
| 3163                 return PositionWithAffinity(positionForBox(box, true), DOWNSTREA
      M); | 3163                 return PositionWithAffinity(positionForBox(box, true), DOWNSTREA
      M); | 
| 3164             } | 3164             } | 
| 3165         } | 3165         } | 
| 3166 | 3166 | 
| 3167         // pass the box a top position that is inside it | 3167         // pass the box a top position that is inside it | 
| 3168         LayoutPoint point(pointInLogicalContents.x(), closestBox->root()->blockD
      irectionPointInLine()); | 3168         LayoutPoint point(pointInLogicalContents.x(), closestBox->root()->blockD
      irectionPointInLine()); | 
| 3169         if (!isHorizontalWritingMode()) | 3169         if (!isHorizontalWritingMode()) | 
| 3170             point = point.transposedPoint(); | 3170             point = point.transposedPoint(); | 
| 3171         if (closestBox->renderer()->isReplaced()) | 3171         if (closestBox->renderer().isReplaced()) | 
| 3172             return positionForPointRespectingEditingBoundaries(this, toRenderBox
      (closestBox->renderer()), point); | 3172             return positionForPointRespectingEditingBoundaries(this, &toRenderBo
      x(closestBox->renderer()), point); | 
| 3173         return closestBox->renderer()->positionForPoint(point); | 3173         return closestBox->renderer().positionForPoint(point); | 
| 3174     } | 3174     } | 
| 3175 | 3175 | 
| 3176     if (lastRootBoxWithChildren) { | 3176     if (lastRootBoxWithChildren) { | 
| 3177         // We hit this case for Mac behavior when the Y coordinate is below the 
      last box. | 3177         // We hit this case for Mac behavior when the Y coordinate is below the 
      last box. | 
| 3178         ASSERT(moveCaretToBoundary); | 3178         ASSERT(moveCaretToBoundary); | 
| 3179         InlineBox* logicallyLastBox; | 3179         InlineBox* logicallyLastBox; | 
| 3180         if (lastRootBoxWithChildren->getLogicalEndBoxWithNode(logicallyLastBox)) | 3180         if (lastRootBoxWithChildren->getLogicalEndBoxWithNode(logicallyLastBox)) | 
| 3181             return PositionWithAffinity(positionForBox(logicallyLastBox, false),
       DOWNSTREAM); | 3181             return PositionWithAffinity(positionForBox(logicallyLastBox, false),
       DOWNSTREAM); | 
| 3182     } | 3182     } | 
| 3183 | 3183 | 
| (...skipping 1835 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
| 5019 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
      arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render
      Object* obj) const | 5019 void RenderBlock::showLineTreeAndMark(const InlineBox* markedBox1, const char* m
      arkedLabel1, const InlineBox* markedBox2, const char* markedLabel2, const Render
      Object* obj) const | 
| 5020 { | 5020 { | 
| 5021     showRenderObject(); | 5021     showRenderObject(); | 
| 5022     for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
      Box()) | 5022     for (const RootInlineBox* root = firstRootBox(); root; root = root->nextRoot
      Box()) | 
| 5023         root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
      bel2, obj, 1); | 5023         root->showLineTreeAndMark(markedBox1, markedLabel1, markedBox2, markedLa
      bel2, obj, 1); | 
| 5024 } | 5024 } | 
| 5025 | 5025 | 
| 5026 #endif | 5026 #endif | 
| 5027 | 5027 | 
| 5028 } // namespace WebCore | 5028 } // namespace WebCore | 
| OLD | NEW | 
|---|