X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;f=shell%2Fev-window.c;h=4d2283b043b2b7ad2249018b8ec64c53b204b8fc;hb=53eea4249bc0255faa1bf51cb4fb455db4cc69f1;hp=af8a83f364a151a68652b221a8b2ab3d84b244fa;hpb=4f8bc8db98020835d2c4d39c902a296b784cf030;p=evince.git diff --git a/shell/ev-window.c b/shell/ev-window.c index af8a83f3..4d2283b0 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -1466,8 +1466,15 @@ ev_window_set_document (EvWindow *ev_window, EvDocument *document) } if (EV_WINDOW_IS_PRESENTATION (ev_window)) { + gint current_page; + + current_page = ev_view_presentation_get_current_page ( + EV_VIEW_PRESENTATION (ev_window->priv->presentation_view)); gtk_widget_destroy (ev_window->priv->presentation_view); ev_window->priv->presentation_view = NULL; + + /* Update the model with the current presentation page */ + ev_document_model_set_page (ev_window->priv->model, current_page); ev_window_run_presentation (ev_window); } @@ -6300,6 +6307,30 @@ ev_view_popup_cmd_copy_link_address (GtkAction *action, EvWindow *window) ev_action); } +static GFile * +create_file_from_uri_for_format (const gchar *uri, + GdkPixbufFormat *format) +{ + GFile *target_file; + gchar **extensions; + gchar *uri_extension; + gint i; + + extensions = gdk_pixbuf_format_get_extensions (format); + for (i = 0; extensions[i]; i++) { + if (g_str_has_suffix (uri, extensions[i])) { + g_strfreev (extensions); + return g_file_new_for_uri (uri); + } + } + + uri_extension = g_strconcat (uri, ".", extensions[0], NULL); + target_file = g_file_new_for_uri (uri_extension); + g_free (uri_extension); + g_strfreev (extensions); + + return target_file; +} static void image_save_dialog_response_cb (GtkWidget *fc, @@ -6311,7 +6342,6 @@ image_save_dialog_response_cb (GtkWidget *fc, GError *error = NULL; GdkPixbuf *pixbuf; gchar *uri; - gchar **extensions; gchar *filename; gchar *file_format; GdkPixbufFormat *format; @@ -6349,19 +6379,9 @@ image_save_dialog_response_cb (GtkWidget *fc, return; } - extensions = gdk_pixbuf_format_get_extensions (format); - if (!g_str_has_suffix (uri, extensions[0])) { - gchar *uri_extension; - - uri_extension = g_strconcat (uri, ".", extensions[0], NULL); - target_file = g_file_new_for_uri (uri_extension); - g_free (uri_extension); - } else { - target_file = g_file_new_for_uri (uri); - } - g_strfreev (extensions); + target_file = create_file_from_uri_for_format (uri, format); g_free (uri); - + is_native = g_file_is_native (target_file); if (is_native) { filename = g_file_get_path (target_file); @@ -6689,9 +6709,15 @@ ev_window_media_player_key_pressed (EvWindow *window, if (strcmp (key, "Play") == 0) { ev_window_run_presentation (window); } else if (strcmp (key, "Previous") == 0) { - ev_window_cmd_go_previous_page (NULL, window); + if (EV_WINDOW_IS_PRESENTATION (window)) + ev_view_presentation_previous_page (EV_VIEW_PRESENTATION (window->priv->presentation_view)); + else + ev_window_cmd_go_previous_page (NULL, window); } else if (strcmp (key, "Next") == 0) { - ev_window_cmd_go_next_page (NULL, window); + if (EV_WINDOW_IS_PRESENTATION (window)) + ev_view_presentation_next_page (EV_VIEW_PRESENTATION (window->priv->presentation_view)); + else + ev_window_cmd_go_next_page (NULL, window); } else if (strcmp (key, "FastForward") == 0) { ev_window_cmd_go_last_page (NULL, window); } else if (strcmp (key, "Rewind") == 0) {