diff options
-rw-r--r-- | chrome/browser/gtk/tab_contents_container_gtk.cc | 6 | ||||
-rw-r--r-- | chrome/browser/renderer_host/render_widget_host_view_gtk.cc | 4 | ||||
-rw-r--r-- | chrome/browser/tab_contents/web_contents_view_gtk.cc | 3 |
3 files changed, 9 insertions, 4 deletions
diff --git a/chrome/browser/gtk/tab_contents_container_gtk.cc b/chrome/browser/gtk/tab_contents_container_gtk.cc index 9f07b66..46a8d42 100644 --- a/chrome/browser/gtk/tab_contents_container_gtk.cc +++ b/chrome/browser/gtk/tab_contents_container_gtk.cc @@ -98,9 +98,9 @@ void TabContentsContainerGtk::RemoveObservers() { void TabContentsContainerGtk::RenderViewHostChanged(RenderViewHost* old_host, RenderViewHost* new_host) { - // If you find a crash right after this NOTIMPLEMENTED(), we'll need to - // switch out some widgets like in SetTabContents(). - NOTIMPLEMENTED(); + // TODO(port): Remove this method and the logic where we subscribe to the + // RENDER_VIEW_HOST_CHANGED notification. This was used on Windows for focus + // issues, and I'm not entirely convinced that this isn't necessary. } void TabContentsContainerGtk::TabContentsDestroyed(TabContents* contents) { diff --git a/chrome/browser/renderer_host/render_widget_host_view_gtk.cc b/chrome/browser/renderer_host/render_widget_host_view_gtk.cc index 90efae3..6c38c00 100644 --- a/chrome/browser/renderer_host/render_widget_host_view_gtk.cc +++ b/chrome/browser/renderer_host/render_widget_host_view_gtk.cc @@ -266,7 +266,11 @@ void RenderWidgetHostViewGtk::RendererGone() { } void RenderWidgetHostViewGtk::Destroy() { + // We need to disconnect ourselves from our parent widget at this time; this + // does the right thing, automatically removing ourselves from our parent + // container. gtk_widget_destroy(view_); + view_ = NULL; } void RenderWidgetHostViewGtk::SetTooltipText(const std::wstring& tooltip_text) { diff --git a/chrome/browser/tab_contents/web_contents_view_gtk.cc b/chrome/browser/tab_contents/web_contents_view_gtk.cc index 22b450f..3dd3ec3 100644 --- a/chrome/browser/tab_contents/web_contents_view_gtk.cc +++ b/chrome/browser/tab_contents/web_contents_view_gtk.cc @@ -23,6 +23,7 @@ WebContentsViewGtk::WebContentsViewGtk(WebContents* web_contents) } WebContentsViewGtk::~WebContentsViewGtk() { + gtk_widget_destroy(vbox_); } WebContents* WebContentsViewGtk::GetWebContents() { @@ -38,7 +39,7 @@ RenderWidgetHostView* WebContentsViewGtk::CreateViewForWidget( DCHECK(!render_widget_host->view()); RenderWidgetHostViewGtk* view = new RenderWidgetHostViewGtk(render_widget_host); - // TODO(port): do we need to do any extra setup? + gtk_widget_show(view->native_view()); gtk_box_pack_start(GTK_BOX(vbox_), view->native_view(), TRUE, TRUE, 0); return view; } |