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 |