summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-20 08:57:55 +0000
committerpfeldman@chromium.org <pfeldman@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2009-07-20 08:57:55 +0000
commit749380bb2ff3884836ab30eaae87c76a0e75878e (patch)
tree8c7935e4e99116e542b7d5f985e15ac01b46130f
parent36f2af638986e3afe4c9d5fa06edf83eff5bfa4f (diff)
downloadchromium_src-749380bb2ff3884836ab30eaae87c76a0e75878e.zip
chromium_src-749380bb2ff3884836ab30eaae87c76a0e75878e.tar.gz
chromium_src-749380bb2ff3884836ab30eaae87c76a0e75878e.tar.bz2
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
-rw-r--r--chrome/browser/browser.cc1
-rw-r--r--chrome/browser/gtk/browser_window_gtk.cc22
-rw-r--r--chrome/browser/views/frame/browser_view.cc1
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) {