From 749380bb2ff3884836ab30eaae87c76a0e75878e Mon Sep 17 00:00:00 2001 From: "pfeldman@chromium.org" Date: Mon, 20 Jul 2009 08:57:55 +0000 Subject: DevTools: Store devtools split location on Linux. Review URL: http://codereview.chromium.org/149748 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@21070 0039d316-1c4b-4281-b951-d872f2087c98 --- chrome/browser/browser.cc | 1 + chrome/browser/gtk/browser_window_gtk.cc | 22 +++++++++++++++++++--- chrome/browser/views/frame/browser_view.cc | 1 - 3 files changed, 20 insertions(+), 4 deletions(-) diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc index 2ba73ad..d20cd3f 100644 --- a/chrome/browser/browser.cc +++ b/chrome/browser/browser.cc @@ -1181,6 +1181,7 @@ void Browser::ShowControlPanel() { void Browser::RegisterPrefs(PrefService* prefs) { prefs->RegisterDictionaryPref(prefs::kBrowserWindowPlacement); prefs->RegisterIntegerPref(prefs::kOptionsWindowLastTabIndex, 0); + prefs->RegisterIntegerPref(prefs::kDevToolsSplitLocation, -1); } // static diff --git a/chrome/browser/gtk/browser_window_gtk.cc b/chrome/browser/gtk/browser_window_gtk.cc index b10f357..06063ac 100644 --- a/chrome/browser/gtk/browser_window_gtk.cc +++ b/chrome/browser/gtk/browser_window_gtk.cc @@ -70,6 +70,9 @@ namespace { // The number of milliseconds between loading animation frames. const int kLoadingAnimationFrameTimeMs = 30; +// Default offset of the contents splitter in pixels. +const int kDefaultContentsSplitOffset = 400; + const char* kBrowserWindowKey = "__BROWSER_WINDOW_GTK__"; // The frame border is only visible in restored mode and is hardcoded to 4 px @@ -937,9 +940,15 @@ void BrowserWindowGtk::UpdateDevToolsForContents(TabContents* contents) { devtools_contents->ShowContents(); } - if (devtools_contents) { + bool should_show = old_devtools == NULL && devtools_contents != NULL; + bool should_hide = old_devtools != NULL && devtools_contents == NULL; + if (should_show) { gtk_widget_show(devtools_container_->widget()); - } else { + } else if (should_hide) { + // Store split offset when hiding devtools window only. + gint divider_offset = gtk_paned_get_position(GTK_PANED(contents_split_)); + g_browser_process->local_state()->SetInteger( + prefs::kDevToolsSplitLocation, divider_offset); gtk_widget_hide(devtools_container_->widget()); } } @@ -1143,7 +1152,14 @@ void BrowserWindowGtk::InitWidgets() { 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); + // Restore split offset. + int split_offset = g_browser_process->local_state()->GetInteger( + prefs::kDevToolsSplitLocation); + if (split_offset == -1) { + // Initial load, set to default value. + split_offset = kDefaultContentsSplitOffset; + } + gtk_paned_set_position(GTK_PANED(contents_split_), split_offset); gtk_widget_show_all(render_area_vbox_); gtk_widget_hide(devtools_container_->widget()); diff --git a/chrome/browser/views/frame/browser_view.cc b/chrome/browser/views/frame/browser_view.cc index 99ecc8a..579d18b 100644 --- a/chrome/browser/views/frame/browser_view.cc +++ b/chrome/browser/views/frame/browser_view.cc @@ -542,7 +542,6 @@ void BrowserView::RegisterBrowserViewPrefs(PrefService* prefs) { kDefaultPluginMessageResponseTimeout); prefs->RegisterIntegerPref(prefs::kHungPluginDetectFrequency, kDefaultHungPluginDetectFrequency); - prefs->RegisterIntegerPref(prefs::kDevToolsSplitLocation, -1); } void BrowserView::AttachBrowserBubble(BrowserBubble* bubble) { -- cgit v1.1