This commit is contained in:
av%netscape.com 2000-02-25 01:02:53 +00:00
Родитель 01a72a3010
Коммит 12bfe22dc4
2 изменённых файлов: 40 добавлений и 4 удалений

Просмотреть файл

@ -208,6 +208,8 @@ public:
NS_IMETHOD GetFrameName(nsString& aResult) const;
#endif
NS_IMETHOD Destroy(nsIPresContext* aPresContext);
NS_IMETHOD ContentChanged(nsIPresContext* aPresContext,
nsIContent* aChild,
nsISupports* aSubContent);
@ -401,6 +403,24 @@ nsObjectFrame::Init(nsIPresContext* aPresContext,
return rv;
}
NS_IMETHODIMP
nsObjectFrame::Destroy(nsIPresContext* aPresContext)
{
// we need to finish with the plugin before native window is destroyed
// doing this in the destructor is too late.
if(mInstanceOwner != nsnull)
{
nsIPluginInstance *inst;
mInstanceOwner->GetInstance(inst);
if(inst != nsnull)
{
inst->Stop();
inst->SetWindow(nsnull);
}
}
return nsObjectFrameSuper::Destroy(aPresContext);
}
NS_IMETHODIMP
nsObjectFrame::GetFrameType(nsIAtom** aType) const
{
@ -1414,8 +1434,6 @@ nsPluginInstanceOwner::~nsPluginInstanceOwner()
if (nsnull != mInstance)
{
mPluginHost->StopPluginInstance(mInstance);
mInstance->Stop();
mInstance->SetWindow(nsnull);
NS_RELEASE(mInstance);
}

Просмотреть файл

@ -208,6 +208,8 @@ public:
NS_IMETHOD GetFrameName(nsString& aResult) const;
#endif
NS_IMETHOD Destroy(nsIPresContext* aPresContext);
NS_IMETHOD ContentChanged(nsIPresContext* aPresContext,
nsIContent* aChild,
nsISupports* aSubContent);
@ -401,6 +403,24 @@ nsObjectFrame::Init(nsIPresContext* aPresContext,
return rv;
}
NS_IMETHODIMP
nsObjectFrame::Destroy(nsIPresContext* aPresContext)
{
// we need to finish with the plugin before native window is destroyed
// doing this in the destructor is too late.
if(mInstanceOwner != nsnull)
{
nsIPluginInstance *inst;
mInstanceOwner->GetInstance(inst);
if(inst != nsnull)
{
inst->Stop();
inst->SetWindow(nsnull);
}
}
return nsObjectFrameSuper::Destroy(aPresContext);
}
NS_IMETHODIMP
nsObjectFrame::GetFrameType(nsIAtom** aType) const
{
@ -1414,8 +1434,6 @@ nsPluginInstanceOwner::~nsPluginInstanceOwner()
if (nsnull != mInstance)
{
mPluginHost->StopPluginInstance(mInstance);
mInstance->Stop();
mInstance->SetWindow(nsnull);
NS_RELEASE(mInstance);
}