Refactor tab close handling and maintain scrollbar state

This commit is contained in:
mr. M
2025-01-31 23:35:45 +01:00
parent 7b41eb753d
commit d81745eef2
3 changed files with 54 additions and 28 deletions

View File

@@ -28,7 +28,7 @@ var gZenUIManager = {
this._hasLoadedDOM = true;
});
window.addEventListener('TabClose', this.updateTabsToolbar.bind(this));
window.addEventListener('TabClose', this.onTabClose.bind(this));
},
updateTabsToolbar() {
@@ -56,6 +56,24 @@ var gZenUIManager = {
tabs.style.maxHeight = height + 'px';
},
get tabsWrapper() {
if (this._tabsWrapper) {
return this._tabsWrapper;
}
this._tabsWrapper = document.getElementById('zen-browser-tabs-wrapper');
return this._tabsWrapper;
},
saveScrollbarState() {
this._scrollbarState = this.tabsWrapper.scrollTop;
},
onTabClose(event) {
this.updateTabsToolbar();
this.tabsWrapper.scrollTop = this._scrollbarState;
this._scrollbarState = 0;
},
openAndChangeToTab(url, options) {
if (window.ownerGlobal.parent) {
const tab = window.ownerGlobal.parent.gBrowser.addTrustedTab(url, options);
@@ -248,7 +266,7 @@ var gZenVerticalTabsManager = {
aTab.style.removeProperty('opacity');
});
gZenUIManager.motion
.animate(aTab.querySelector('.tab-stack'), {
.animate(aTab.querySelector('.tab-content'), {
filter: ['blur(1px)', 'blur(0px)'],
})
.then(() => {