X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-application.c;h=88a2ee983f331bad22ce8f1dc12d50f0860f8de1;hb=refs%2Ftags%2FEVINCE_0_5_5;hp=381b4e36c8a7788da53e4e4d1264598a97eca08f;hpb=872101b786854841e6b32cac322f08d3dde6b946;p=evince.git diff --git a/shell/ev-application.c b/shell/ev-application.c index 381b4e36..88a2ee98 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,21 +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) { - - if (page_label && strcmp (page_label, "") != 0) { - EvLinkDest *dest; + 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); + } - dest = ev_link_dest_new_page_label (page_label); + value = g_hash_table_lookup (args, "mode"); + if (value) { + mode = g_value_get_uint (value); + } + } + + ev_application_open_uri_at_dest (application, uri, dest, mode, timestamp); - ev_application_open_uri_at_dest (application, uri, dest, timestamp); + if (dest) g_object_unref (dest); - } else { - ev_application_open_uri_at_dest (application, uri, NULL, timestamp); - } return TRUE; } @@ -316,10 +330,12 @@ ev_application_shutdown (EvApplication *application) application->toolbars_file = NULL; } +#ifndef HAVE_GTK_RECENT if (application->recent_model) { g_object_unref (application->recent_model); application->recent_model = NULL; } +#endif g_free (application->last_chooser_uri); g_object_unref (application); @@ -346,14 +362,15 @@ ev_application_init (EvApplication *ev_application) DATADIR "/evince-toolbar.xml"); if (!egg_toolbars_model_load_toolbars (ev_application->toolbars_model, - ev_application->toolbars_file)) { + ev_application->toolbars_file)) { egg_toolbars_model_load_toolbars (ev_application->toolbars_model, - DATADIR"/evince-toolbar.xml"); + DATADIR"/evince-toolbar.xml"); } egg_toolbars_model_set_flags (ev_application->toolbars_model, 0, EGG_TB_MODEL_NOT_REMOVABLE); - + +#ifndef HAVE_GTK_RECENT ev_application->recent_model = egg_recent_model_new (EGG_RECENT_MODEL_SORT_MRU); /* FIXME we should add a mime type filter but current eggrecent has only a varargs style api which does not work well when @@ -361,6 +378,7 @@ ev_application_init (EvApplication *ev_application) egg_recent_model_set_limit (ev_application->recent_model, 5); egg_recent_model_set_filter_groups (ev_application->recent_model, "Evince", NULL); +#endif /* HAVE_GTK_RECENT */ } GList * @@ -387,10 +405,12 @@ EggToolbarsModel *ev_application_get_toolbars_model (EvApplication *application) return application->toolbars_model; } +#ifndef HAVE_GTK_RECENT EggRecentModel *ev_application_get_recent_model (EvApplication *application) { return application->recent_model; } +#endif void ev_application_save_toolbars_model (EvApplication *application) {