From c31fd74da4f237f783d2fc2ef7c614cf5db7ba28 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Fri, 4 May 2007 15:14:02 +0000 Subject: [PATCH] Don't use libgnome to open help, instead call Yelp directly. 2007-05-04 Ross Burton * shell/ev-window.c: Don't use libgnome to open help, instead call Yelp directly. svn path=/trunk/; revision=2435 --- ChangeLog | 5 +++++ shell/ev-window.c | 37 +++++++++++++++++++++++++++++++++---- 2 files changed, 38 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 8aace318..99c8bb10 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2007-05-04 Ross Burton + + * shell/ev-window.c: + Don't use libgnome to open help, instead call Yelp directly. + 2007-05-04 Ross Burton * shell/ev-sidebar-attachments.c: diff --git a/shell/ev-window.c b/shell/ev-window.c index cb7f71bb..b18abe76 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -87,7 +87,6 @@ #include #include #include -#include #include #include #include @@ -3133,15 +3132,45 @@ static void ev_window_cmd_help_contents (GtkAction *action, EvWindow *ev_window) { GError *error = NULL; + char *command; + const char *lang; + char *uri = NULL; - g_return_if_fail (EV_IS_WINDOW (ev_window)); + int i; + + const char * const * langs = g_get_language_names (); + + for (i = 0; langs[i]; i++) { + lang = langs[i]; + if (strchr (lang, '.')) { + continue; + } - gnome_help_display ("evince.xml", NULL, &error); + uri = g_build_filename(GNOMEDATADIR, + "/gnome/help/" PACKAGE, + lang, + "/evince.xml", + NULL); + + if (g_file_test (uri, G_FILE_TEST_EXISTS)) { + break; + } + } - if(error != NULL) { + if (uri == NULL) { + g_warning ("Cannot find help"); + return; + } + + command = g_strconcat ("gnome-help ghelp://", uri, NULL); + g_free (uri); + + g_spawn_command_line_async (command, &error); + if (error != NULL) { g_warning (error->message); g_error_free (error); } + g_free (command); } static void -- 2.43.5