Refactor ZenSidebarManager to associate browser with tab

This commit is contained in:
mauro-balades 2024-09-29 12:18:05 +02:00
parent 5df1298bfd
commit 37804deef0
2 changed files with 18 additions and 2 deletions

View file

@ -435,6 +435,9 @@ var gZenBrowserManagerSidebar = {
const titleContainer = document.getElementById('zen-sidebar-web-panel-title');
titleContainer.textContent = 'Loading...';
let browser = gBrowser.createBrowser({});
const tab = this.sidebar.querySelector(`[zen-sidebar-id='${data.id}']`);
gBrowser._tabForBrowser.set(browser, tab);
tab.linkedBrowser = browser;
browser.setAttribute('disablefullscreen', 'true');
browser.setAttribute('src', data.url);
browser.setAttribute('zen-sidebar-id', data.id);

View file

@ -1,4 +1,4 @@
var gZenViewSplitter = new (class {
var gZenViewSplitter = new class {
constructor() {
this._data = [];
this.currentView = -1;
@ -24,6 +24,17 @@ var gZenViewSplitter = new (class {
sibling.insertAdjacentElement('afterend', document.createXULElement('menuseparator'));
}
get canChangeTabOnHover() {
delete this.canChangeTabOnHover;
XPCOMUtils.defineLazyPreferenceGetter(
this,
"canChangeTabOnHover",
"zen.splitView.change-on-hover",
false
);
return this.canChangeTabOnHover;
}
/**
* @param {Event} event - The event that triggered the tab close.
* @description Handles the tab close event.7
@ -292,6 +303,7 @@ var gZenViewSplitter = new (class {
const container = tab.linkedBrowser.closest('.browserSidebarContainer');
this.resetContainerStyle(container);
container.removeEventListener('click', this.handleTabClick);
container.removeEventListener('mouseover', this.handleTabClick);
}
this.tabBrowserPanel.removeAttribute('zen-split-view');
this.tabBrowserPanel.style.gridTemplateAreas = '';
@ -468,6 +480,7 @@ var gZenViewSplitter = new (class {
}
container.setAttribute('zen-split-anim', 'true');
container.addEventListener('click', this.handleTabClick);
container.addEventListener('mouseover', this.handleTabClick);
container.style.gridArea = `tab${index + 1}`;
}
@ -727,4 +740,4 @@ var gZenViewSplitter = new (class {
: [gBrowser.selectedTab, tabs[nextTabIndex]];
this.splitTabs(selected_tabs, gridType);
}
})();
};