diff --git a/layout/generic/nsObjectFrame.cpp b/layout/generic/nsObjectFrame.cpp index 3ea9f2dc7d9d..69f3094e9251 100644 --- a/layout/generic/nsObjectFrame.cpp +++ b/layout/generic/nsObjectFrame.cpp @@ -1428,18 +1428,23 @@ nsObjectFrame::DidReflow(nsIPresContext* aPresContext, // The view is created hidden; once we have reflowed it and it has been // positioned then we show it. - if ((aStatus != NS_FRAME_REFLOW_FINISHED) || IsHidden()) + if (aStatus != NS_FRAME_REFLOW_FINISHED) return rv; + PRBool bHidden = IsHidden(); + nsIView* view = nsnull; GetView(aPresContext, &view); if (view) { nsCOMPtr vm; view->GetViewManager(*getter_AddRefs(vm)); if (vm) - vm->SetViewVisibility(view, nsViewVisibility_kShow); + vm->SetViewVisibility(view, bHidden ? nsViewVisibility_kHide : nsViewVisibility_kShow); } + if (bHidden) + return rv; + nsPluginWindow *window; if (!mInstanceOwner || NS_FAILED(mInstanceOwner->GetWindow(window))) diff --git a/layout/html/base/src/nsObjectFrame.cpp b/layout/html/base/src/nsObjectFrame.cpp index 3ea9f2dc7d9d..69f3094e9251 100644 --- a/layout/html/base/src/nsObjectFrame.cpp +++ b/layout/html/base/src/nsObjectFrame.cpp @@ -1428,18 +1428,23 @@ nsObjectFrame::DidReflow(nsIPresContext* aPresContext, // The view is created hidden; once we have reflowed it and it has been // positioned then we show it. - if ((aStatus != NS_FRAME_REFLOW_FINISHED) || IsHidden()) + if (aStatus != NS_FRAME_REFLOW_FINISHED) return rv; + PRBool bHidden = IsHidden(); + nsIView* view = nsnull; GetView(aPresContext, &view); if (view) { nsCOMPtr vm; view->GetViewManager(*getter_AddRefs(vm)); if (vm) - vm->SetViewVisibility(view, nsViewVisibility_kShow); + vm->SetViewVisibility(view, bHidden ? nsViewVisibility_kHide : nsViewVisibility_kShow); } + if (bHidden) + return rv; + nsPluginWindow *window; if (!mInstanceOwner || NS_FAILED(mInstanceOwner->GetWindow(window)))