OLD | NEW |
1 /** | 1 /** |
2 * This file is part of the HTML widget for KDE. | 2 * This file is part of the HTML widget for KDE. |
3 * | 3 * |
4 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) | 4 * Copyright (C) 1999 Lars Knoll (knoll@kde.org) |
5 * Copyright (C) 2000 Dirk Mueller (mueller@kde.org) | 5 * Copyright (C) 2000 Dirk Mueller (mueller@kde.org) |
6 * Copyright (C) 2004, 2006 Apple Computer, Inc. | 6 * Copyright (C) 2004, 2006 Apple Computer, Inc. |
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 73 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
84 if (m_widget) { | 84 if (m_widget) { |
85 if (m_view) | 85 if (m_view) |
86 m_view->removeChild(m_widget); | 86 m_view->removeChild(m_widget); |
87 widgetRendererMap().remove(m_widget); | 87 widgetRendererMap().remove(m_widget); |
88 } | 88 } |
89 | 89 |
90 // removes from override size map | 90 // removes from override size map |
91 if (hasOverrideSize()) | 91 if (hasOverrideSize()) |
92 setOverrideSize(-1); | 92 setOverrideSize(-1); |
93 | 93 |
94 RenderArena* arena = renderArena(); | |
95 | |
96 if (hasLayer()) | |
97 layer()->clearClipRects(); | |
98 | |
99 if (style() && (style()->height().isPercent() || style()->minHeight().isPerc
ent() || style()->maxHeight().isPercent())) | 94 if (style() && (style()->height().isPercent() || style()->minHeight().isPerc
ent() || style()->maxHeight().isPercent())) |
100 RenderBlock::removePercentHeightDescendant(this); | 95 RenderBlock::removePercentHeightDescendant(this); |
101 | 96 |
| 97 if (hasLayer()) { |
| 98 layer()->clearClipRects(); |
| 99 destroyLayer(); |
| 100 } |
| 101 |
| 102 // Grab the arena from node()->document()->renderArena() before clearing the
node pointer. |
| 103 // Clear the node before deref-ing, as this may be deleted when deref is cal
led. |
| 104 RenderArena* arena = renderArena(); |
102 setNode(0); | 105 setNode(0); |
103 | |
104 if (hasLayer()) | |
105 layer()->destroy(arena); | |
106 | |
107 deref(arena); | 106 deref(arena); |
108 } | 107 } |
109 | 108 |
110 RenderWidget::~RenderWidget() | 109 RenderWidget::~RenderWidget() |
111 { | 110 { |
112 ASSERT(m_refCount <= 0); | 111 ASSERT(m_refCount <= 0); |
113 deleteWidget(); | 112 deleteWidget(); |
114 } | 113 } |
115 | 114 |
116 void RenderWidget::setWidgetGeometry(const IntRect& frame) | 115 void RenderWidget::setWidgetGeometry(const IntRect& frame) |
(...skipping 155 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
272 bool hadResult = result.innerNode(); | 271 bool hadResult = result.innerNode(); |
273 bool inside = RenderReplaced::nodeAtPoint(request, result, x, y, tx, ty, act
ion); | 272 bool inside = RenderReplaced::nodeAtPoint(request, result, x, y, tx, ty, act
ion); |
274 | 273 |
275 // Check to see if we are really over the widget itself (and not just in the
border/padding area). | 274 // Check to see if we are really over the widget itself (and not just in the
border/padding area). |
276 if (inside && !hadResult && result.innerNode() == node()) | 275 if (inside && !hadResult && result.innerNode() == node()) |
277 result.setIsOverWidget(contentBoxRect().contains(result.localPoint())); | 276 result.setIsOverWidget(contentBoxRect().contains(result.localPoint())); |
278 return inside; | 277 return inside; |
279 } | 278 } |
280 | 279 |
281 } // namespace WebCore | 280 } // namespace WebCore |
OLD | NEW |