27 create mode 100644 browser/components/shell/nsUnixShellService.h |
27 create mode 100644 browser/components/shell/nsUnixShellService.h |
28 |
28 |
29 diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js |
29 diff --git a/browser/components/preferences/main.js b/browser/components/preferences/main.js |
30 --- a/browser/components/preferences/main.js |
30 --- a/browser/components/preferences/main.js |
31 +++ b/browser/components/preferences/main.js |
31 +++ b/browser/components/preferences/main.js |
32 @@ -291,16 +291,23 @@ var gMainPane = { |
32 @@ -292,16 +292,23 @@ var gMainPane = { |
33 }, backoffTimes[this._backoffIndex + 1 < backoffTimes.length ? this._backoffIndex++ : backoffTimes.length - 1]); |
33 }, backoffTimes[this._backoffIndex + 1 < backoffTimes.length ? this._backoffIndex++ : backoffTimes.length - 1]); |
34 }; |
34 }; |
35 |
35 |
36 window.setTimeout(() => { |
36 window.setTimeout(() => { |
37 window.requestIdleCallback(pollForDefaultBrowser); |
37 window.requestIdleCallback(pollForDefaultBrowser); |
51 this.updateDefaultPerformanceSettingsPref(); |
51 this.updateDefaultPerformanceSettingsPref(); |
52 |
52 |
53 let defaultPerformancePref = Preferences.get( |
53 let defaultPerformancePref = Preferences.get( |
54 "browser.preferences.defaultPerformanceSettings.enabled" |
54 "browser.preferences.defaultPerformanceSettings.enabled" |
55 ); |
55 ); |
56 @@ -1744,16 +1751,27 @@ var gMainPane = { |
56 @@ -1753,16 +1760,27 @@ var gMainPane = { |
57 this._backoffIndex = 0; |
57 |
58 |
58 // Disable the set default button, so that the user doesn't try to hit it again |
59 let shellSvc = getShellService(); |
59 // while awaiting on setDefaultBrowser |
60 if (!shellSvc) { |
60 let setDefaultButton = document.getElementById("setDefaultButton"); |
61 return; |
61 setDefaultButton.disabled = true; |
62 } |
62 |
63 try { |
63 try { |
64 shellSvc.setDefaultBrowser(false); |
64 await shellSvc.setDefaultBrowser(false); |
65 + if (kde_session == 1) { |
65 + if (kde_session == 1) { |
66 + var shellObj = Components.classes["@mozilla.org/file/local;1"] |
66 + var shellObj = Components.classes["@mozilla.org/file/local;1"] |
67 + .createInstance(Components.interfaces.nsILocalFile); |
67 + .createInstance(Components.interfaces.nsILocalFile); |
68 + shellObj.initWithPath("/usr/bin/kwriteconfig"); |
68 + shellObj.initWithPath("/usr/bin/kwriteconfig"); |
69 + var process = Components.classes["@mozilla.org/process/util;1"] |
69 + var process = Components.classes["@mozilla.org/process/util;1"] |
74 + process.run(false, args, args.length); |
74 + process.run(false, args, args.length); |
75 + } |
75 + } |
76 } catch (ex) { |
76 } catch (ex) { |
77 console.error(ex); |
77 console.error(ex); |
78 return; |
78 return; |
|
79 } finally { |
|
80 // Make sure to re-enable the default button when we're finished, regardless of the outcome |
|
81 setDefaultButton.disabled = false; |
79 } |
82 } |
80 |
83 |
81 let isDefault = shellSvc.isDefaultBrowser(false, true); |
|
82 let setDefaultPane = document.getElementById("setDefaultPane"); |
|
83 setDefaultPane.classList.toggle("is-default", isDefault); |
|
84 diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build |
84 diff --git a/browser/components/shell/moz.build b/browser/components/shell/moz.build |
85 --- a/browser/components/shell/moz.build |
85 --- a/browser/components/shell/moz.build |
86 +++ b/browser/components/shell/moz.build |
86 +++ b/browser/components/shell/moz.build |
87 @@ -31,16 +31,18 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "coco |
87 @@ -31,16 +31,18 @@ if CONFIG["MOZ_WIDGET_TOOLKIT"] == "coco |
88 ] |
88 ] |