| Index: chrome/browser/ui/gtk/browser_window_gtk.cc
|
| diff --git a/chrome/browser/ui/gtk/browser_window_gtk.cc b/chrome/browser/ui/gtk/browser_window_gtk.cc
|
| index f3b9706d6acfcbd2ce44921f4c93a2cadfbc79d2..1dc46d42540d5d3bfc001fb8c5e9ff2b9b30e056 100644
|
| --- a/chrome/browser/ui/gtk/browser_window_gtk.cc
|
| +++ b/chrome/browser/ui/gtk/browser_window_gtk.cc
|
| @@ -101,11 +101,10 @@ namespace {
|
| // The number of milliseconds between loading animation frames.
|
| const int kLoadingAnimationFrameTimeMs = 30;
|
|
|
| -// Default height of dev tools pane when docked to the browser window. This
|
| -// matches the value in Views.
|
| -const int kDefaultDevToolsHeight = 200;
|
| -
|
| +// Minimal height of devotools pane or content pane when devtools are docked
|
| +// to the browser window.
|
| const int kMinDevToolsHeight = 50;
|
| +const int kMinContentsHeight = 50;
|
|
|
| const char* kBrowserWindowKey = "__BROWSER_WINDOW_GTK__";
|
|
|
| @@ -1299,13 +1298,28 @@ void BrowserWindowGtk::UpdateDevToolsForContents(TabContents* contents) {
|
|
|
| bool should_show = old_devtools == NULL && devtools_contents != NULL;
|
| bool should_hide = old_devtools != NULL && devtools_contents == NULL;
|
| +
|
| if (should_show) {
|
| + // Restore split offset.
|
| + GtkAllocation contents_rect;
|
| + gtk_widget_get_allocation(contents_container_->widget(), &contents_rect);
|
| +
|
| + int split_offset = browser_->profile()->GetPrefs()->
|
| + GetInteger(prefs::kDevToolsSplitLocation);
|
| + if (split_offset == -1)
|
| + split_offset = contents_rect.height * 2 / 3;
|
| + // Make sure user can see both panes.
|
| + split_offset = std::max(kMinContentsHeight, split_offset);
|
| + split_offset = std::min(contents_rect.height - kMinDevToolsHeight,
|
| + split_offset);
|
| + if (split_offset < 0)
|
| + split_offset = contents_rect.height * 2 / 3;
|
| + gtk_paned_set_position(GTK_PANED(contents_split_), split_offset);
|
| gtk_widget_show(devtools_container_->widget());
|
| } else if (should_hide) {
|
| - // Store split offset when hiding devtools window only.
|
| - gint divider_offset = gtk_paned_get_position(GTK_PANED(contents_split_));
|
| + gint split_offset = gtk_paned_get_position(GTK_PANED(contents_split_));
|
| browser_->profile()->GetPrefs()->
|
| - SetInteger(prefs::kDevToolsSplitLocation, divider_offset);
|
| + SetInteger(prefs::kDevToolsSplitLocation, split_offset);
|
| gtk_widget_hide(devtools_container_->widget());
|
| }
|
| }
|
| @@ -1686,17 +1700,7 @@ void BrowserWindowGtk::InitWidgets() {
|
| gtk_paned_pack2(GTK_PANED(contents_split_), devtools_container_->widget(),
|
| FALSE, TRUE);
|
| gtk_box_pack_end(GTK_BOX(render_area_vbox_), contents_split_, TRUE, TRUE, 0);
|
| - // Restore split offset.
|
| - int split_offset = browser_->profile()->GetPrefs()->
|
| - GetInteger(prefs::kDevToolsSplitLocation);
|
| - if (split_offset != -1) {
|
| - if (split_offset < kMinDevToolsHeight)
|
| - split_offset = kMinDevToolsHeight;
|
| - gtk_paned_set_position(GTK_PANED(contents_split_), split_offset);
|
| - } else {
|
| - gtk_widget_set_size_request(devtools_container_->widget(), -1,
|
| - kDefaultDevToolsHeight);
|
| - }
|
| +
|
| gtk_widget_show_all(render_area_floating_container_);
|
| gtk_widget_hide(devtools_container_->widget());
|
| render_area_event_box_ = gtk_event_box_new();
|
|
|