diff --git a/src/ZenSidebarManager.mjs b/src/ZenSidebarManager.mjs index a6ddfc6..12e1d69 100644 --- a/src/ZenSidebarManager.mjs +++ b/src/ZenSidebarManager.mjs @@ -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); diff --git a/src/ZenViewSplitter.mjs b/src/ZenViewSplitter.mjs index 30a650a..02ecd06 100644 --- a/src/ZenViewSplitter.mjs +++ b/src/ZenViewSplitter.mjs @@ -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); } -})(); \ No newline at end of file +};