OLD | NEW |
1 /* | 1 /* |
2 * Copyright (C) 2010, 2011 Nokia Corporation and/or its subsidiary(-ies) | 2 * Copyright (C) 2010, 2011 Nokia Corporation and/or its subsidiary(-ies) |
3 * | 3 * |
4 * This library is free software; you can redistribute it and/or | 4 * This library is free software; you can redistribute it and/or |
5 * modify it under the terms of the GNU Library General Public | 5 * modify it under the terms of the GNU Library General Public |
6 * License as published by the Free Software Foundation; either | 6 * License as published by the Free Software Foundation; either |
7 * version 2 of the License, or (at your option) any later version. | 7 * version 2 of the License, or (at your option) any later version. |
8 * | 8 * |
9 * This library is distributed in the hope that it will be useful, | 9 * This library is distributed in the hope that it will be useful, |
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of | 10 * but WITHOUT ANY WARRANTY; without even the implied warranty of |
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | 11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
12 * Library General Public License for more details. | 12 * Library General Public License for more details. |
13 * | 13 * |
14 * You should have received a copy of the GNU Library General Public License | 14 * You should have received a copy of the GNU Library General Public License |
15 * along with this library; see the file COPYING.LIB. If not, write to | 15 * along with this library; see the file COPYING.LIB. If not, write to |
16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, | 16 * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
17 * Boston, MA 02110-1301, USA. | 17 * Boston, MA 02110-1301, USA. |
18 * | 18 * |
19 */ | 19 */ |
20 | 20 |
21 #include "config.h" | 21 #include "config.h" |
22 #include "core/html/HTMLDetailsElement.h" | 22 #include "core/html/HTMLDetailsElement.h" |
23 | 23 |
24 #include "HTMLNames.h" | 24 #include "HTMLNames.h" |
25 #include "bindings/v8/ExceptionStatePlaceholder.h" | 25 #include "bindings/v8/ExceptionStatePlaceholder.h" |
26 #include "core/dom/NodeRenderingContext.h" | |
27 #include "core/dom/Text.h" | 26 #include "core/dom/Text.h" |
28 #include "core/dom/shadow/ShadowRoot.h" | 27 #include "core/dom/shadow/ShadowRoot.h" |
29 #include "core/html/HTMLSummaryElement.h" | 28 #include "core/html/HTMLSummaryElement.h" |
30 #include "core/html/shadow/HTMLContentElement.h" | 29 #include "core/html/shadow/HTMLContentElement.h" |
31 #include "core/platform/LocalizedStrings.h" | 30 #include "core/platform/LocalizedStrings.h" |
32 #include "core/rendering/RenderBlock.h" | 31 #include "core/rendering/RenderBlock.h" |
33 | 32 |
34 namespace WebCore { | 33 namespace WebCore { |
35 | 34 |
36 using namespace HTMLNames; | 35 using namespace HTMLNames; |
(...skipping 49 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
86 { | 85 { |
87 if (name == openAttr) { | 86 if (name == openAttr) { |
88 bool oldValue = m_isOpen; | 87 bool oldValue = m_isOpen; |
89 m_isOpen = !value.isNull(); | 88 m_isOpen = !value.isNull(); |
90 if (oldValue != m_isOpen) | 89 if (oldValue != m_isOpen) |
91 lazyReattachIfAttached(); | 90 lazyReattachIfAttached(); |
92 } else | 91 } else |
93 HTMLElement::parseAttribute(name, value); | 92 HTMLElement::parseAttribute(name, value); |
94 } | 93 } |
95 | 94 |
96 bool HTMLDetailsElement::childShouldCreateRenderer(const NodeRenderingContext& c
hildContext) const | 95 bool HTMLDetailsElement::childShouldCreateRenderer(const Node& child) const |
97 { | 96 { |
| 97 // FIXME: These checks do not look correct, we should just use insertion poi
nts instead. |
98 if (m_isOpen) | 98 if (m_isOpen) |
99 return HTMLElement::childShouldCreateRenderer(childContext); | 99 return HTMLElement::childShouldCreateRenderer(child); |
100 if (!childContext.node()->hasTagName(summaryTag)) | 100 if (!child.hasTagName(summaryTag)) |
101 return false; | 101 return false; |
102 return childContext.node() == findMainSummary() && HTMLElement::childShouldC
reateRenderer(childContext); | 102 return &child == findMainSummary() && HTMLElement::childShouldCreateRenderer
(child); |
103 } | 103 } |
104 | 104 |
105 void HTMLDetailsElement::toggleOpen() | 105 void HTMLDetailsElement::toggleOpen() |
106 { | 106 { |
107 setAttribute(openAttr, m_isOpen ? nullAtom : emptyAtom); | 107 setAttribute(openAttr, m_isOpen ? nullAtom : emptyAtom); |
108 } | 108 } |
109 | 109 |
110 } | 110 } |
OLD | NEW |