X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=sidebyside;f=shell%2Fev-application.c;h=b7002a750cebff125fe348b7b873e9f56272e6aa;hb=ddeae94041ec4a587e0b353d97816daad182ea66;hp=e3c78a9eb9cc94fa2452e17d1e14a80e311bea84;hpb=70f641411b2fbab930b481ac844984819b48805d;p=evince.git diff --git a/shell/ev-application.c b/shell/ev-application.c index e3c78a9e..b7002a75 100644 --- a/shell/ev-application.c +++ b/shell/ev-application.c @@ -239,6 +239,7 @@ void ev_application_open_uri_at_dest (EvApplication *application, const char *uri, EvLinkDest *dest, + EvWindowRunMode mode, guint timestamp) { EvWindow *new_window; @@ -263,7 +264,7 @@ ev_application_open_uri_at_dest (EvApplication *application, /* We need to load uri before showing the window, so we can restore window size without flickering */ - ev_window_open_uri (new_window, uri, dest); + ev_window_open_uri (new_window, uri, dest, mode); gtk_widget_show (GTK_WIDGET (new_window)); @@ -274,18 +275,34 @@ ev_application_open_uri_at_dest (EvApplication *application, gboolean ev_application_open_uri (EvApplication *application, const char *uri, - const char *page_label, + GHashTable *args, guint timestamp, GError **error) { - ev_application_open_uri_at_dest (application, uri, NULL, timestamp); + EvLinkDest *dest = NULL; + EvWindowRunMode mode = EV_WINDOW_MODE_NORMAL; + + if (args) { + GValue *value = NULL; + + value = g_hash_table_lookup (args, "page-label"); + if (value) { + const gchar *page_label; + + page_label = g_value_get_string (value); + dest = ev_link_dest_new_page_label (page_label); + } + + value = g_hash_table_lookup (args, "mode"); + if (value) { + mode = g_value_get_uint (value); + } + } - if (page_label && strcmp (page_label, "") != 0) { - EvWindow *window; + ev_application_open_uri_at_dest (application, uri, dest, mode, timestamp); - window = ev_application_get_uri_window (application, uri); - ev_window_open_page_label (window, page_label); - } + if (dest) + g_object_unref (dest); return TRUE; } @@ -339,10 +356,13 @@ ev_application_init (EvApplication *ev_application) ev_application->toolbars_file = g_build_filename (ev_dot_dir (), "evince_toolbar.xml", NULL); - if (!egg_toolbars_model_load (ev_application->toolbars_model, - ev_application->toolbars_file)) { - egg_toolbars_model_load (ev_application->toolbars_model, - DATADIR"/evince-toolbar.xml"); + egg_toolbars_model_load_names (ev_application->toolbars_model, + DATADIR "/evince-toolbar.xml"); + + if (!egg_toolbars_model_load_toolbars (ev_application->toolbars_model, + ev_application->toolbars_file)) { + egg_toolbars_model_load_toolbars (ev_application->toolbars_model, + DATADIR"/evince-toolbar.xml"); } egg_toolbars_model_set_flags (ev_application->toolbars_model, 0, @@ -388,8 +408,8 @@ EggRecentModel *ev_application_get_recent_model (EvApplication *application) void ev_application_save_toolbars_model (EvApplication *application) { - egg_toolbars_model_save (application->toolbars_model, - application->toolbars_file, "1.0"); + egg_toolbars_model_save_toolbars (application->toolbars_model, + application->toolbars_file, "1.0"); } void ev_application_set_chooser_uri (EvApplication *application, const gchar *uri)