summaryrefslogtreecommitdiff
path: root/audio/Songbird/no.gconf.patch
diff options
context:
space:
mode:
Diffstat (limited to 'audio/Songbird/no.gconf.patch')
-rw-r--r--audio/Songbird/no.gconf.patch73
1 files changed, 73 insertions, 0 deletions
diff --git a/audio/Songbird/no.gconf.patch b/audio/Songbird/no.gconf.patch
new file mode 100644
index 0000000000..215f1730a7
--- /dev/null
+++ b/audio/Songbird/no.gconf.patch
@@ -0,0 +1,73 @@
+ app/content/scripts/appInit.js | 12 ++++++++++--
+ 1 files changed, 10 insertions(+), 2 deletions(-)
+
+diff --git app/content/scripts/appInit.js app/content/scripts/appInit.js
+index 516c815..c982363 100644
+--- app/content/scripts/appInit.js
++++ app/content/scripts/appInit.js
+@@ -155,26 +155,30 @@ function SBAppInitialize()
+ // On Windows and Linux, register the songbird:// protocol.
+ // (Mac is in the info.plist)
+ var platform = Components.classes["@mozilla.org/system-info;1"]
+ .getService(Components.interfaces.nsIPropertyBag2)
+ .getProperty("name");
+ if (platform == "Windows_NT") {
+ SBRegisterWindowsSongbirdProtocol();
+ }
+- else if (platform == "Linux") {
++ else {
+ SBRegisterGConfSongbirdProtocol();
+ }
+ }
+ catch( err ) {
+ alert( "SBAppInitialize:SBRegisterSongbirdProtocol()\n" + err );
+ }
+ }
+
+ function SBRegisterWindowsSongbirdProtocol() {
++ if (!("@mozilla.org/windows-registry-key;1" in Components.classes)) {
++ // no windows registry key, probably not Windows
++ return;
++ }
+ var path = Components.classes["@mozilla.org/file/directory_service;1"]
+ .getService(Components.interfaces.nsIProperties)
+ .get("CurProcD", Components.interfaces.nsIFile);
+ var file = path.clone();
+ // It'd be nice if there were a way to look this up.
+ // (mook suggests) ::GetModuleFileNameW().
+ // http://mxr.mozilla.org/seamonkey/source/browser/components/shell/src/nsWindowsShellService.cpp#264
+ file.append("songbird.exe");
+@@ -199,24 +203,28 @@ function SBRegisterWindowsSongbirdProtocol() {
+ wrk.create(wrk.ROOT_KEY_CURRENT_USER,
+ "Software\\Classes\\songbird\\shell\\open\\command",
+ wrk.ACCESS_WRITE);
+ wrk.writeStringValue("", '"' + file.path + '" "%1"');
+ wrk.close();
+ }
+
+ function SBRegisterGConfSongbirdProtocol() {
++ if (!("@mozilla.org/gnome-gconf-service;1" in Components.classes)) {
++ // gnome-gconf-service doesn't exist
++ return;
++ }
+ var path = Components.classes["@mozilla.org/file/directory_service;1"]
+ .getService(Components.interfaces.nsIProperties)
+ .get("CurProcD", Components.interfaces.nsIFile);
+ var file = path.clone();
+ file.append("songbird");
+
+ var gconf = Components.classes["@mozilla.org/gnome-gconf-service;1"]
+- .getService(Components.interfaces.nsIGConfService);
++ .getService(Components.interfaces.nsIGConfService);
+ gconf.setString("/desktop/gnome/url-handlers/songbird/command", '"' + file.path + '" "%s"');
+ gconf.setBool("/desktop/gnome/url-handlers/songbird/enabled", true);
+ gconf.setBool("/desktop/gnome/url-handlers/songbird/needs_terminal", false);
+ }
+
+ //
+ // Called on window-unload of songbird.xul.
+ //
+--
+1.5.5.1015.g9d258
+
+