From 58d404d35390c0ebbfd914adf7fd53901b59a9dd Mon Sep 17 00:00:00 2001 From: "yurys@chromium.org" Date: Fri, 2 Apr 2010 08:24:26 +0000 Subject: Repair DevTools in docked mode on Gtk. After http://codereview.chromium.org/1025005 browser hangs when switching between tabs with docked devtools or inspecting an element in a tab with docked devtools. BUG=39716,39883 Review URL: http://codereview.chromium.org/1539008 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@43464 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/gtk/browser_window_gtk.cc | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) (limited to 'chrome/browser') diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc index e0d9751..682a302 100644 --- a/chrome/browser/gtk/browser_window_gtk.cc +++ b/chrome/browser/gtk/browser_window_gtk.cc @@ -1174,12 +1174,22 @@ void BrowserWindowGtk::MaybeShowBookmarkBar(TabContents* contents, void BrowserWindowGtk::UpdateDevToolsForContents(TabContents* contents) { TabContents* old_devtools = devtools_container_->GetTabContents(); + TabContents* devtools_contents = contents ? + DevToolsWindow::GetDevToolsContents(contents) : NULL; + if (old_devtools == devtools_contents) + return; + if (old_devtools) devtools_container_->DetachTabContents(old_devtools); - TabContents* devtools_contents = contents ? - DevToolsWindow::GetDevToolsContents(contents) : NULL; devtools_container_->SetTabContents(devtools_contents); + if (devtools_contents) { + // TabContentsViewGtk::WasShown is not called when tab contents is shown by + // anything other than user selecting a Tab. + // See TabContentsViewWin::OnWindowPosChanged for reference on how it should + // be implemented. + devtools_contents->ShowContents(); + } bool should_show = old_devtools == NULL && devtools_contents != NULL; bool should_hide = old_devtools != NULL && devtools_contents == NULL; -- cgit v1.1