summaryrefslogtreecommitdiffstats
path: root/chrome/browser/browser.cc
diff options
context:
space:
mode:
authorsky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-03 15:52:29 +0000
committersky@chromium.org <sky@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-05-03 15:52:29 +0000
commitb334487af4e2c5b9d27e0807347f7fa94b6d89a5 (patch)
tree39d3ab8fc095c814d80c65f1df93c7e01d09eb4e /chrome/browser/browser.cc
parent2823b2b8a5b66279c2eac18f62b7756e89d72828 (diff)
downloadchromium_src-b334487af4e2c5b9d27e0807347f7fa94b6d89a5.zip
chromium_src-b334487af4e2c5b9d27e0807347f7fa94b6d89a5.tar.gz
chromium_src-b334487af4e2c5b9d27e0807347f7fa94b6d89a5.tar.bz2
Adds ability for newly inserted tabs to appear before other tabs. I'll
wire this up to vertical tabs shortly. BUG=none TEST=none Review URL: http://codereview.chromium.org/1687020 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@46224 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'chrome/browser/browser.cc')
-rw-r--r--chrome/browser/browser.cc20
1 files changed, 18 insertions, 2 deletions
diff --git a/chrome/browser/browser.cc b/chrome/browser/browser.cc
index 43e1e61..cad0d63 100644
--- a/chrome/browser/browser.cc
+++ b/chrome/browser/browser.cc
@@ -208,6 +208,7 @@ Browser::Browser(Type type, Profile* profile)
// might show vertical tabs but not show an option to turn them off.
use_vertical_tabs_.SetValue(false);
}
+ UpdateTabStripModelInsertionPolicy();
}
Browser::~Browser() {
@@ -750,6 +751,11 @@ void Browser::InProgressDownloadResponse(bool cancel_downloads) {
////////////////////////////////////////////////////////////////////////////////
// Browser, Tab adding/showing functions:
+int Browser::GetIndexForInsertionDuringRestore(int relative_index) {
+ return (tabstrip_model_.insertion_policy() == TabStripModel::INSERT_AFTER) ?
+ tab_count() : relative_index;
+}
+
TabContents* Browser::AddTabWithURL(const GURL& url,
const GURL& referrer,
PageTransition::Type transition,
@@ -982,6 +988,16 @@ NavigationController& Browser::GetOrCloneNavigationControllerForDisposition(
}
}
+void Browser::UpdateTabStripModelInsertionPolicy() {
+ tabstrip_model_.SetInsertionPolicy(UseVerticalTabs() ?
+ TabStripModel::INSERT_BEFORE : TabStripModel::INSERT_AFTER);
+}
+
+void Browser::UseVerticalTabsChanged() {
+ UpdateTabStripModelInsertionPolicy();
+ window()->ToggleTabStripMode();
+}
+
void Browser::GoBack(WindowOpenDisposition disposition) {
UserMetrics::RecordAction(UserMetricsAction("Back"), profile_);
@@ -2141,7 +2157,7 @@ bool Browser::UseVerticalTabs() const {
void Browser::ToggleUseVerticalTabs() {
use_vertical_tabs_.SetValue(!UseVerticalTabs());
- window()->ToggleTabStripMode();
+ UseVerticalTabsChanged();
}
///////////////////////////////////////////////////////////////////////////////
@@ -2802,7 +2818,7 @@ void Browser::Observe(NotificationType type,
case NotificationType::PREF_CHANGED: {
if (*(Details<std::wstring>(details).ptr()) == prefs::kUseVerticalTabs)
- window()->ToggleTabStripMode();
+ UseVerticalTabsChanged();
else
NOTREACHED();
break;