| OLD | NEW |
| 1 /** | 1 /** |
| 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) | 2 * Copyright (C) 2000 Lars Knoll (knoll@kde.org) |
| 3 * Copyright (C) 2006 Apple Computer, Inc. | 3 * Copyright (C) 2006 Apple Computer, Inc. |
| 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 17 matching lines...) Expand all Loading... |
| 28 namespace WebCore { | 28 namespace WebCore { |
| 29 | 29 |
| 30 static PassRefPtr<StringImpl> newlineString() | 30 static PassRefPtr<StringImpl> newlineString() |
| 31 { | 31 { |
| 32 DEFINE_STATIC_LOCAL(const String, string, ("\n")); | 32 DEFINE_STATIC_LOCAL(const String, string, ("\n")); |
| 33 return string.impl(); | 33 return string.impl(); |
| 34 } | 34 } |
| 35 | 35 |
| 36 RenderBR::RenderBR(Node* node) | 36 RenderBR::RenderBR(Node* node) |
| 37 : RenderText(node, newlineString()) | 37 : RenderText(node, newlineString()) |
| 38 , m_lineHeight(-1) | |
| 39 { | 38 { |
| 40 } | 39 } |
| 41 | 40 |
| 42 RenderBR::~RenderBR() | 41 RenderBR::~RenderBR() |
| 43 { | 42 { |
| 44 } | 43 } |
| 45 | 44 |
| 46 int RenderBR::lineHeight(bool firstLine) const | 45 int RenderBR::lineHeight(bool firstLine) const |
| 47 { | 46 { |
| 48 if (firstLine && document().styleEngine()->usesFirstLineRules()) { | 47 RenderStyle* s = style(firstLine && document().styleEngine()->usesFirstLineR
ules()); |
| 49 RenderStyle* s = style(firstLine); | 48 return s->computedLineHeight(); |
| 50 if (s != style()) | |
| 51 return s->computedLineHeight(); | |
| 52 } | |
| 53 | |
| 54 if (m_lineHeight == -1) | |
| 55 m_lineHeight = style()->computedLineHeight(); | |
| 56 | |
| 57 return m_lineHeight; | |
| 58 } | 49 } |
| 59 | 50 |
| 60 void RenderBR::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle) | 51 void RenderBR::styleDidChange(StyleDifference diff, const RenderStyle* oldStyle) |
| 61 { | 52 { |
| 62 RenderText::styleDidChange(diff, oldStyle); | 53 RenderText::styleDidChange(diff, oldStyle); |
| 63 m_lineHeight = -1; | |
| 64 } | 54 } |
| 65 | 55 |
| 66 int RenderBR::caretMinOffset() const | 56 int RenderBR::caretMinOffset() const |
| 67 { | 57 { |
| 68 return 0; | 58 return 0; |
| 69 } | 59 } |
| 70 | 60 |
| 71 int RenderBR::caretMaxOffset() const | 61 int RenderBR::caretMaxOffset() const |
| 72 { | 62 { |
| 73 return 1; | 63 return 1; |
| 74 } | 64 } |
| 75 | 65 |
| 76 PositionWithAffinity RenderBR::positionForPoint(const LayoutPoint&) | 66 PositionWithAffinity RenderBR::positionForPoint(const LayoutPoint&) |
| 77 { | 67 { |
| 78 return createPositionWithAffinity(0, DOWNSTREAM); | 68 return createPositionWithAffinity(0, DOWNSTREAM); |
| 79 } | 69 } |
| 80 | 70 |
| 81 } // namespace WebCore | 71 } // namespace WebCore |
| OLD | NEW |