diff -Nru evince-0.3.2/shell/ev-window.c evince-0.3.2-js/shell/ev-window.c --- evince-0.3.2/shell/ev-window.c 2005-06-24 00:17:31.000000000 +0200 +++ evince-0.3.2-js/shell/ev-window.c 2005-07-04 14:49:44.000000000 +0200 @@ -1948,7 +1948,9 @@ ev_page_cache_set_current_page (ev_window->priv->page_cache, current_page - 10); } -static void +void ev_window_cmd_view_reload (GtkAction *action, EvWindow *ev_window); + +void ev_window_cmd_view_reload (GtkAction *action, EvWindow *ev_window) { char *uri; diff -Nru evince-0.3.2/shell/main.c evince-0.3.2-js/shell/main.c --- evince-0.3.2/shell/main.c 2005-06-08 01:28:54.000000000 +0200 +++ evince-0.3.2-js/shell/main.c 2005-07-04 14:27:40.000000000 +0200 @@ -22,6 +22,7 @@ #include "ev-application.h" +#include #include #include #include @@ -42,6 +43,8 @@ { NULL, 0, 0, NULL, 0, NULL, NULL } }; +static EvWindow *reload_window = NULL; + static void load_files (const char **files) { @@ -61,7 +64,8 @@ window = GTK_WIDGET (ev_application_new_window (EV_APP)); gtk_widget_show (window); - ev_window_open_uri (EV_WINDOW (window), uri); + reload_window = EV_WINDOW (window); + ev_window_open_uri (reload_window, uri); if (page_label != NULL) ev_window_open_page_label (EV_WINDOW (window), page_label); @@ -72,6 +76,16 @@ g_free (page_label); } +void ev_window_cmd_view_reload (GtkAction *action, EvWindow *ev_window); + +static void +reload_sighandler (int ignore) +{ + if (reload_window) + ev_window_cmd_view_reload (NULL, reload_window); +} + + int main (int argc, char *argv[]) { @@ -108,7 +122,9 @@ load_files (poptGetArgs (context)); - gtk_main (); + signal (SIGUSR1, reload_sighandler); + + gtk_main (); gnome_accelerators_sync (); poptFreeContext (context);