From 0d4bca3ef5251c44359b05cec3280d7b8edfb937 Mon Sep 17 00:00:00 2001 From: brahim <92426196+BrhmDev@users.noreply.github.com> Date: Tue, 1 Oct 2024 02:15:28 +0200 Subject: [PATCH] Make splitview change on hover only work when pref true. --- src/ZenViewSplitter.mjs | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/src/ZenViewSplitter.mjs b/src/ZenViewSplitter.mjs index 02ecd06..5bd034a 100644 --- a/src/ZenViewSplitter.mjs +++ b/src/ZenViewSplitter.mjs @@ -5,6 +5,14 @@ var gZenViewSplitter = new class { this._tabBrowserPanel = null; this.__modifierElement = null; this.__hasSetMenuListener = false; + this.canChangeTabOnHover = null; + + XPCOMUtils.defineLazyPreferenceGetter( + this, + "canChangeTabOnHover", + "zen.splitView.change-on-hover", + false + ); window.addEventListener('TabClose', this.handleTabClose.bind(this)); this.initializeContextMenu(); @@ -24,17 +32,6 @@ 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 @@ -302,8 +299,8 @@ var gZenViewSplitter = new class { for (const tab of this._data[this.currentView].tabs) { const container = tab.linkedBrowser.closest('.browserSidebarContainer'); this.resetContainerStyle(container); - container.removeEventListener('click', this.handleTabClick); - container.removeEventListener('mouseover', this.handleTabClick); + container.removeEventListener('click', this.handleTabEvent); + container.removeEventListener('mouseover', this.handleTabEvent); } this.tabBrowserPanel.removeAttribute('zen-split-view'); this.tabBrowserPanel.style.gridTemplateAreas = ''; @@ -479,18 +476,21 @@ var gZenViewSplitter = new class { container.setAttribute('zen-split-active', 'true'); } container.setAttribute('zen-split-anim', 'true'); - container.addEventListener('click', this.handleTabClick); - container.addEventListener('mouseover', this.handleTabClick); + container.addEventListener('click', this.handleTabEvent); + container.addEventListener('mouseover', this.handleTabEvent); container.style.gridArea = `tab${index + 1}`; } /** - * Handles the tab click event. + * Handles tab events. * - * @param {Event} event - The click event. + * @param {Event} event - The event. */ - handleTabClick = (event) => { + handleTabEvent = (event) => { + if (event.type === 'mouseover' && !this.canChangeTabOnHover) { + return; + } const container = event.currentTarget; const tab = window.gBrowser.tabs.find((t) => t.linkedBrowser.closest('.browserSidebarContainer') === container); if (tab) {