summaryrefslogtreecommitdiffstats
path: root/chrome/browser
diff options
context:
space:
mode:
authoryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-02 08:24:26 +0000
committeryurys@chromium.org <yurys@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-04-02 08:24:26 +0000
commit58d404d35390c0ebbfd914adf7fd53901b59a9dd (patch)
tree526d5b084cf4f3b71d24360a16c91942c3f98f58 /chrome/browser
parent2d9bb022bdf74c114cb6d76f6dd27ef585ce80e8 (diff)
downloadchromium_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.cc14
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;