diff options
author | yurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-02 08:24:26 +0000 |
---|---|---|
committer | yurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2010-04-02 08:24:26 +0000 |
commit | 58d404d35390c0ebbfd914adf7fd53901b59a9dd (patch) | |
tree | 526d5b084cf4f3b71d24360a16c91942c3f98f58 /chrome/browser | |
parent | 2d9bb022bdf74c114cb6d76f6dd27ef585ce80e8 (diff) | |
download | chromium_src-58d404d35390c0ebbfd914adf7fd53901b59a9dd.zip chromium_src-58d404d35390c0ebbfd914adf7fd53901b59a9dd.tar.gz chromium_src-58d404d35390c0ebbfd914adf7fd53901b59a9dd.tar.bz2 |
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
Diffstat (limited to 'chrome/browser')
-rw-r--r-- | chrome/browser/gtk/browser_window_gtk.cc | 14 |
1 files changed, 12 insertions, 2 deletions
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; |