]> www.fi.muni.cz Git - evince.git/blobdiff - shell/ev-window.c
Make the toolbar editor fill its window
[evince.git] / shell / ev-window.c
index af8a83f364a151a68652b221a8b2ab3d84b244fa..906adb07992a4b3a5edd3c0104e94253cb4922dc 100644 (file)
@@ -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);
        }
 
@@ -4268,7 +4275,7 @@ ev_window_cmd_edit_toolbar (GtkAction *action, EvWindow *ev_window)
        gtk_container_set_border_width (GTK_CONTAINER (editor), 5);
        gtk_box_set_spacing (GTK_BOX (EGG_TOOLBAR_EDITOR (editor)), 5);
 
-       gtk_container_add (GTK_CONTAINER (content_area), editor);
+        gtk_box_pack_start (GTK_BOX (content_area), editor, TRUE, TRUE, 0);
 
        egg_editable_toolbar_set_edit_mode (toolbar, TRUE);
 
@@ -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) {