当前位置: 首页>>代码示例>>C++>>正文


C++ PluginView::removePlugin方法代码示例

本文整理汇总了C++中PluginView::removePlugin方法的典型用法代码示例。如果您正苦于以下问题:C++ PluginView::removePlugin方法的具体用法?C++ PluginView::removePlugin怎么用?C++ PluginView::removePlugin使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在PluginView的用法示例。


在下文中一共展示了PluginView::removePlugin方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: destroy

void RenderWidget::destroy()
{
#if PLATFORM(APOLLO) && ENABLE(NETSCAPE_PLUGIN_API)
    // the plugin might be destroyed by the plugin itself meaning that
    // it is on the stack. Defer the unload until we have a safe stack.
    if (m_widget && m_widget->isPluginView()) {
#if OS(DARWIN)
        if (!m_widget->isApolloPDFPluginView())
#endif
        {
            ASSERT(document());
            document()->destroyWidgetSoon(m_widget.get());
            PluginView* pluginView = static_cast<PluginView*>(m_widget.get());

            // Remove the plugin from the update timer on WebViewImpl.
            // That timer is used to update all widgets when the HTMLLoader
            // is rotated.
            pluginView->removePlugin();
        }
    }
#endif

    // We can't call the base class's destroy because we don't
    // want to unconditionally delete ourselves (we're ref-counted).
    // So the code below includes copied and pasted contents of
    // both RenderBox::destroy() and RenderObject::destroy().
    // Fix originally made for <rdar://problem/4228818>.

    animation()->cancelAnimations(this);

    if (RenderView* v = view())
        v->removeWidget(this);
    
    if (AXObjectCache::accessibilityEnabled()) {
        document()->axObjectCache()->childrenChanged(this->parent());
        document()->axObjectCache()->remove(this);
    }

    if (!documentBeingDestroyed() && parent())
        parent()->dirtyLinesFromChangedChild(this);

    remove();

    if (m_hasCounterNodeMap)
        RenderCounter::destroyCounterNodes(this);

    setWidget(0);

    // removes from override size map
    if (hasOverrideSize())
        setOverrideSize(-1);

    if (style() && (style()->height().isPercent() || style()->minHeight().isPercent() || style()->maxHeight().isPercent()))
        RenderBlock::removePercentHeightDescendant(this);

    if (hasLayer()) {
        layer()->clearClipRects();
        setHasLayer(false);
        destroyLayer();
    }

    // Grab the arena from node()->document()->renderArena() before clearing the node pointer.
    // Clear the node before deref-ing, as this may be deleted when deref is called.
    RenderArena* arena = renderArena();
    setNode(0);
    deref(arena);
}
开发者ID:UIKit0,项目名称:WebkitAIR,代码行数:67,代码来源:RenderWidget.cpp


注:本文中的PluginView::removePlugin方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。