--- 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