From e883e76db0759f5e6eb33a4fb5df8c51082ee985 Mon Sep 17 00:00:00 2001 From: Nick Poulden Date: Fri, 29 Jul 2011 16:17:30 -0700 Subject: [PATCH] Remember scroll state --- template/app/controller/Classes.js | 10 +++++++++- template/app/view/Tabs.js | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/template/app/controller/Classes.js b/template/app/controller/Classes.js index e3a9d68f..b6a2728c 100644 --- a/template/app/controller/Classes.js +++ b/template/app/controller/Classes.js @@ -140,6 +140,12 @@ Ext.define('Docs.controller.Classes', { preventDefault: true, delegate: '.not-expandable' }); + + cmp.body.addListener('scroll', function(cmp, el) { + var baseUrl = '/api/' + this.currentCls.name; + Docs.classState[baseUrl] = Docs.classState[baseUrl] || {}; + Docs.classState[baseUrl]['scrollOffset'] = el.scrollTop; + }, this); } } }); @@ -249,7 +255,9 @@ Ext.define('Docs.controller.Classes', { this.getOverview().scrollToEl("#" + anchor); this.fireEvent('showMember', cls.name, anchor); } else { - this.getOverview().getEl().down('.x-panel-body').scrollTo('top', 0); + var baseUrl = '/api/' + cls.name, + offset = (Docs.classState[baseUrl] && Docs.classState[baseUrl].scrollOffset) || 0; + this.getOverview().getEl().down('.x-panel-body').scrollTo('top', offset); } this.currentCls = cls; diff --git a/template/app/view/Tabs.js b/template/app/view/Tabs.js index ab6e9505..887b06ae 100644 --- a/template/app/view/Tabs.js +++ b/template/app/view/Tabs.js @@ -100,7 +100,7 @@ Ext.define('Docs.view.Tabs', { } if (idx == this.activeTab) { if (this.openTabs.length == 0) { - // Go to home screen + Docs.App.getController('Classes').loadIndex(); } else { if (idx == this.openTabs.length) idx -= 1; Docs.App.getController('Classes').handleUrlClick(this.openTabs[idx], {}); -- GitLab