diff --git a/src/browser/components/urlbar/UrlbarInput-sys-mjs.patch b/src/browser/components/urlbar/UrlbarInput-sys-mjs.patch index b6894c048..b9773df1f 100644 --- a/src/browser/components/urlbar/UrlbarInput-sys-mjs.patch +++ b/src/browser/components/urlbar/UrlbarInput-sys-mjs.patch @@ -1,5 +1,5 @@ diff --git a/browser/components/urlbar/UrlbarInput.sys.mjs b/browser/components/urlbar/UrlbarInput.sys.mjs -index 4b69136aa31bfef3a1d3b57ad0c75fe07fa26be0..a469d122622fcf361eea8faa4a8d3a13a5a9e4f1 100644 +index 4b69136aa31bfef3a1d3b57ad0c75fe07fa26be0..a864dd8854611d78e3ace9db301cf7c4f1357a32 100644 --- a/browser/components/urlbar/UrlbarInput.sys.mjs +++ b/browser/components/urlbar/UrlbarInput.sys.mjs @@ -68,6 +68,13 @@ XPCOMUtils.defineLazyPreferenceGetter( @@ -58,7 +58,7 @@ index 4b69136aa31bfef3a1d3b57ad0c75fe07fa26be0..a469d122622fcf361eea8faa4a8d3a13 if (!this.#providesSearchMode(result)) { - this.view.close({ elementPicked: true }); + if (this._zenHandleUrlbarClose) { -+ this._zenHandleUrlbarClose(true); ++ this._zenHandleUrlbarClose(true, true); + } else { + this.view.close({ elementPicked: true }); + } diff --git a/src/zen/common/ZenUIManager.mjs b/src/zen/common/ZenUIManager.mjs index 0afb0ca06..4d3c8b0fd 100644 --- a/src/zen/common/ZenUIManager.mjs +++ b/src/zen/common/ZenUIManager.mjs @@ -323,7 +323,7 @@ var gZenUIManager = { this._lastSearch = ''; }, - handleUrlbarClose(onSwitch) { + handleUrlbarClose(onSwitch = false, onElementPicked = false) { // Validate browser state first if (!this._validateBrowserState()) { console.warn('Browser state invalid for URL bar close operation'); @@ -350,27 +350,29 @@ var gZenUIManager = { } // Handle search data - if (onSwitch) { - this.clearUrlbarData(); - } else { - this._lastSearch = gURLBar._untrimmedValue || ''; + if (!onElementPicked) { + if (onSwitch) { + this.clearUrlbarData(); + } else { + this._lastSearch = gURLBar._untrimmedValue || ''; - if (this._clearTimeout) { - clearTimeout(this._clearTimeout); + if (this._clearTimeout) { + clearTimeout(this._clearTimeout); + } + + this._clearTimeout = setTimeout(() => { + this.clearUrlbarData(); + }, this.urlbarWaitToClear); } - this._clearTimeout = setTimeout(() => { - this.clearUrlbarData(); - }, this.urlbarWaitToClear); - } + // Safely restore URL bar state with proper validation + if (this._prevUrlbarLabel) { + gURLBar.setURI(this._prevUrlbarLabel, onSwitch, false, false, !onSwitch); + } - // Safely restore URL bar state with proper validation - if (this._prevUrlbarLabel) { - gURLBar.setURI(this._prevUrlbarLabel, onSwitch, false, false, !onSwitch); + gURLBar.handleRevert(); } - gURLBar.handleRevert(); - if (gURLBar.focused) { gURLBar.view.close({ elementPicked: onSwitch }); gURLBar.updateTextOverflow();