diff -r 4c520ebe1ad7 -r 2a0735b1eb92 firefox-kde.patch --- a/firefox-kde.patch Tue Jan 23 17:32:46 2024 +0100 +++ b/firefox-kde.patch Thu Feb 22 20:31:18 2024 +0100 @@ -29,7 +29,7 @@ diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js --- a/browser/components/preferences/main.js +++ b/browser/components/preferences/main.js -@@ -291,16 +291,23 @@ var gMainPane = { +@@ -292,16 +292,23 @@ var gMainPane = { }, backoffTimes[this._backoffIndex + 1 < backoffTimes.length ? this._backoffIndex++ : backoffTimes.length - 1]); }; @@ -53,15 +53,15 @@ let defaultPerformancePref = Preferences.get( "browser.preferences.defaultPerformanceSettings.enabled" ); -@@ -1744,16 +1751,27 @@ var gMainPane = { - this._backoffIndex = 0; +@@ -1753,16 +1760,27 @@ var gMainPane = { - let shellSvc = getShellService(); - if (!shellSvc) { - return; - } + // Disable the set default button, so that the user doesn't try to hit it again + // while awaiting on setDefaultBrowser + let setDefaultButton = document.getElementById("setDefaultButton"); + setDefaultButton.disabled = true; + try { - shellSvc.setDefaultBrowser(false); + await shellSvc.setDefaultBrowser(false); + if (kde_session == 1) { + var shellObj = Components.classes["@mozilla.org/file/local;1"] + .createInstance(Components.interfaces.nsILocalFile); @@ -76,11 +76,11 @@ } catch (ex) { console.error(ex); return; + } finally { + // Make sure to re-enable the default button when we're finished, regardless of the outcome + setDefaultButton.disabled = false; } - let isDefault = shellSvc.isDefaultBrowser(false, true); - let setDefaultPane = document.getElementById("setDefaultPane"); - setDefaultPane.classList.toggle("is-default", isDefault); diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build --- a/browser/components/shell/moz.build +++ b/browser/components/shell/moz.build