summaryrefslogtreecommitdiffstats
path: root/chrome
diff options
context:
space:
mode:
authorerg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-20 18:57:15 +0000
committererg@google.com <erg@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2009-02-20 18:57:15 +0000
commit7a679c414e9812d4139d3afde9d98c4efe8f5bb8 (patch)
tree5abe0aa8db0b31c30bd6dcfa754b0d350bdcc899 /chrome
parent16f8b1c04fd8eb44a45cd7a0517e45ddc1920d7e (diff)
downloadchromium_src-7a679c414e9812d4139d3afde9d98c4efe8f5bb8.zip
chromium_src-7a679c414e9812d4139d3afde9d98c4efe8f5bb8.tar.gz
chromium_src-7a679c414e9812d4139d3afde9d98c4efe8f5bb8.tar.bz2
Implement the logic to change Renderers. We can now navigate between pages!
Review URL: http://codereview.chromium.org/27002 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@10109 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome')
-rw-r--r--chrome/browser/gtk/tab_contents_container_gtk.cc6
-rw-r--r--chrome/browser/renderer_host/render_widget_host_view_gtk.cc4
-rw-r--r--chrome/browser/tab_contents/web_contents_view_gtk.cc3
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;
}