Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(947)

Unified Diff: chrome/browser/gtk/browser_window_gtk.cc

Issue 149675: DevTools: Initial commit with docked devtools window support on Linux. (Closed) Base URL: svn://chrome-svn/chrome/trunk/src/
Patch Set: '' Created 11 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « chrome/browser/gtk/browser_window_gtk.h ('k') | chrome/browser/gtk/tab_contents_container_gtk.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: chrome/browser/gtk/browser_window_gtk.cc
===================================================================
--- chrome/browser/gtk/browser_window_gtk.cc (revision 20859)
+++ chrome/browser/gtk/browser_window_gtk.cc (working copy)
@@ -24,6 +24,7 @@
#include "chrome/browser/browser_list.h"
#include "chrome/browser/browser_process.h"
#include "chrome/browser/browser_theme_provider.h"
+#include "chrome/browser/debugger/devtools_window.h"
#include "chrome/browser/download/download_item_model.h"
#include "chrome/browser/download/download_manager.h"
#include "chrome/browser/gtk/about_chrome_dialog.h"
@@ -587,7 +588,8 @@
}
void BrowserWindowGtk::UpdateDevTools() {
- NOTIMPLEMENTED();
+ UpdateDevToolsForContents(
+ browser_->tabstrip_model()->GetSelectedTabContents());
}
void BrowserWindowGtk::FocusDevTools() {
@@ -836,6 +838,7 @@
if (index == browser_->tabstrip_model()->selected_index())
infobar_container_->ChangeTabContents(NULL);
contents_container_->DetachTabContents(contents);
+ UpdateDevToolsForContents(NULL);
}
// TODO(estade): this function should probably be unforked from the BrowserView
@@ -854,6 +857,7 @@
// TabContents.
infobar_container_->ChangeTabContents(new_contents);
contents_container_->SetTabContents(new_contents);
+ UpdateDevToolsForContents(new_contents);
new_contents->DidBecomeSelected();
// TODO(estade): after we manage browser activation, add a check to make sure
@@ -900,6 +904,29 @@
}
}
+void BrowserWindowGtk::UpdateDevToolsForContents(TabContents* contents) {
+ TabContents* old_devtools = devtools_container_->GetTabContents();
+ 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();
+ }
+
+ if (devtools_contents) {
+ gtk_widget_show(devtools_container_->widget());
+ } else {
+ gtk_widget_hide(devtools_container_->widget());
+ }
+}
+
void BrowserWindowGtk::UpdateUIForContents(TabContents* contents) {
MaybeShowBookmarkBar(contents, false);
}
@@ -1095,8 +1122,17 @@
status_bubble_.reset(new StatusBubbleGtk(browser_->profile()));
contents_container_.reset(new TabContentsContainerGtk(status_bubble_.get()));
- contents_container_->AddContainerToBox(render_area_vbox_);
+ devtools_container_.reset(new TabContentsContainerGtk(NULL));
+ contents_split_ = gtk_vpaned_new();
+ gtk_paned_pack1(GTK_PANED(contents_split_), contents_container_->widget(),
+ TRUE, TRUE);
+ gtk_paned_pack2(GTK_PANED(contents_split_), devtools_container_->widget(),
+ FALSE, TRUE);
+ gtk_box_pack_start(GTK_BOX(render_area_vbox_), contents_split_, TRUE, TRUE,
+ 0);
+ gtk_paned_set_position(GTK_PANED(contents_split_), 400);
gtk_widget_show_all(render_area_vbox_);
+ gtk_widget_hide(devtools_container_->widget());
#if defined(OS_CHROMEOS)
if (browser_->type() == Browser::TYPE_POPUP) {
« no previous file with comments | « chrome/browser/gtk/browser_window_gtk.h ('k') | chrome/browser/gtk/tab_contents_container_gtk.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698