# HG changeset patch # User Stu Tomlinson # Date 1201364256 0 # Node ID c77098cebf2384363aaa9ac647e64138b72608e8 # Parent b52f690502a4b8d3c25f73135d686625b6ea2165 Use xdg-open instead of gnome-open, if possible. We might want to use xdg-open on other DEs too, because apparently it knows about KDE and XFCE and things. We might even be able to get rid of our browser prefs tab on those too. diff -r b52f690502a4 -r c77098cebf23 pidgin/gtknotify.c --- a/pidgin/gtknotify.c Sat Jan 26 03:53:18 2008 +0000 +++ b/pidgin/gtknotify.c Sat Jan 26 16:17:36 2008 +0000 @@ -1058,7 +1058,12 @@ /* if they are running gnome, use the gnome web browser */ if (purple_running_gnome() == TRUE) { - command = g_strdup_printf("gnome-open %s", escaped); + char *tmp = g_find_program_in_path("xdg-open"); + if (tmp == NULL) + command = g_strdup_printf("gnome-open %s", escaped); + else + command = g_strdup_printf("xdg-open %s", escaped); + g_free(tmp); } else if (purple_running_osx() == TRUE) { @@ -1074,6 +1079,10 @@ else command = g_strdup_printf("%s %s", web_browser, escaped); } + else if (!strcmp(web_browser, "xdg-open")) + { + command = g_strdup_printf("xdg-open %s", escaped); + } else if (!strcmp(web_browser, "gnome-open")) { command = g_strdup_printf("gnome-open %s", escaped); diff -r b52f690502a4 -r c77098cebf23 pidgin/gtkprefs.c --- a/pidgin/gtkprefs.c Sat Jan 26 03:53:18 2008 +0000 +++ b/pidgin/gtkprefs.c Sat Jan 26 16:17:36 2008 +0000 @@ -1369,6 +1369,7 @@ {N_("Netscape"), "netscape"}, {N_("Mozilla"), "mozilla"}, {N_("Konqueror"), "kfmclient"}, + {N_("Desktop Default"), "xdg-open"}, {N_("GNOME Default"), "gnome-open"}, {N_("Galeon"), "galeon"}, {N_("Firefox"), "firefox"}, @@ -1391,6 +1392,14 @@ browsers = g_list_prepend(browsers, (gpointer)_(possible_browsers[i].name)); if(browser_setting && !strcmp(possible_browsers[i].command, browser_setting)) browser_setting = NULL; + /* If xdg-open is valid, prefer it over gnome-open and skip forward */ + if(!strcmp(possible_browsers[i].command, "xdg-open")) { + if (browser_setting && !strcmp("gnome-open", browser_setting)) { + purple_prefs_set_string(PIDGIN_PREFS_ROOT "/browsers/browser", possible_browsers[i].command); + browser_setting = NULL; + } + i++; + } } }