firefox-kde.patch
changeset 223 4555a5d0d661
parent 221 488440b896fe
child 226 6bf3bb4c115e
--- a/firefox-kde.patch	Sun Jan 23 11:00:33 2011 +0100
+++ b/firefox-kde.patch	Wed Jan 26 16:43:00 2011 +0100
@@ -1168,6 +1168,53 @@
  #if defined(XP_WIN) && !defined(__MINGW32__)
      { &kNS_WINIEPROFILEMIGRATOR_CID, false, NULL, nsIEProfileMigratorConstructor },
  #elif defined(XP_MACOSX)
+diff --git a/browser/components/preferences/advanced.js b/browser/components/preferences/advanced.js
+--- a/browser/components/preferences/advanced.js
++++ b/browser/components/preferences/advanced.js
+@@ -683,24 +683,42 @@ var gAdvancedPane = {
+     var brandBundle = document.getElementById("bundleBrand");
+     var shellBundle = document.getElementById("bundleShell");
+     var brandShortName = brandBundle.getString("brandShortName");
+     var promptTitle = shellBundle.getString("setDefaultBrowserTitle");
+     var promptMessage;
+     const IPS = Components.interfaces.nsIPromptService;
+     var psvc = Components.classes["@mozilla.org/embedcomp/prompt-service;1"]
+                          .getService(IPS);
++
++    var env = Components.classes["@mozilla.org/process/environment;1"]
++                        .getService(Components.interfaces.nsIEnvironment);
++    var kde_session = 0;
++    if (env.get('KDE_FULL_SESSION') == "true")
++      kde_session = 1;
++
+     if (!shellSvc.isDefaultBrowser(false)) {
+       promptMessage = shellBundle.getFormattedString("setDefaultBrowserMessage", 
+                                                      [brandShortName]);
+       var rv = psvc.confirmEx(window, promptTitle, promptMessage, 
+                               IPS.STD_YES_NO_BUTTONS,
+                               null, null, null, null, { });
+-      if (rv == 0)
++      if (rv == 0) {
+         shellSvc.setDefaultBrowser(true, false);
++        if (kde_session == 1) {
++          var shellObj = Components.classes["@mozilla.org/file/local;1"]
++                                   .createInstance(Components.interfaces.nsILocalFile);
++          shellObj.initWithPath("/usr/bin/kwriteconfig");
++          var process = Components.classes["@mozilla.org/process/util;1"]
++                                  .createInstance(Components.interfaces.nsIProcess);
++          process.init(shellObj);
++          var args = ["--file", "kdeglobals", "--group", "General", "--key", "BrowserApplication", "MozillaFirefox"];
++          process.run(false, args, args.length);
++        }
++      }
+     }
+     else {
+       promptMessage = shellBundle.getFormattedString("alreadyDefaultBrowser",
+                                                      [brandShortName]);
+       psvc.alert(window, promptTitle, promptMessage);
+     }
+   }
+ #endif
 diff --git a/browser/components/shell/src/Makefile.in b/browser/components/shell/src/Makefile.in
 --- a/browser/components/shell/src/Makefile.in
 +++ b/browser/components/shell/src/Makefile.in