| 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 |