[evince] Rotate with CTRL+Left/Right in presentation mode too



commit edf80d6543a90f386f34c37d35998cd286736263
Author: Carlos Garcia Campos <carlosgc gnome org>
Date:   Sat Feb 12 12:51:30 2011 +0100

    Rotate with CTRL+Left/Right in presentation mode too
    
    Fixes bug #641772

 shell/ev-window.c |   27 +++++++++++++++++++++++----
 1 files changed, 23 insertions(+), 4 deletions(-)
---
diff --git a/shell/ev-window.c b/shell/ev-window.c
index 906adb0..013ae3d 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -4030,12 +4030,15 @@ ev_window_stop_presentation (EvWindow *window,
 			     gboolean  unfullscreen_window)
 {
 	guint current_page;
+	guint rotation;
 
 	if (!EV_WINDOW_IS_PRESENTATION (window))
 		return;
 
 	current_page = ev_view_presentation_get_current_page (EV_VIEW_PRESENTATION (window->priv->presentation_view));
 	ev_document_model_set_page (window->priv->model, current_page);
+	rotation = ev_view_presentation_get_rotation (EV_VIEW_PRESENTATION (window->priv->presentation_view));
+	ev_document_model_set_rotation (window->priv->model, rotation);
 
 	gtk_container_remove (GTK_CONTAINER (window->priv->main_box),
 			      window->priv->presentation_view);
@@ -4207,17 +4210,33 @@ ev_window_set_page_mode (EvWindow         *window,
 static void
 ev_window_cmd_edit_rotate_left (GtkAction *action, EvWindow *ev_window)
 {
-	gint rotation = ev_document_model_get_rotation (ev_window->priv->model);
+	gint rotation;
 
-	ev_document_model_set_rotation (ev_window->priv->model, rotation - 90);
+	if (EV_WINDOW_IS_PRESENTATION (ev_window)) {
+		rotation = ev_view_presentation_get_rotation (EV_VIEW_PRESENTATION (ev_window->priv->presentation_view));
+		ev_view_presentation_set_rotation (EV_VIEW_PRESENTATION (ev_window->priv->presentation_view),
+						   rotation - 90);
+	} else {
+		rotation = ev_document_model_get_rotation (ev_window->priv->model);
+
+		ev_document_model_set_rotation (ev_window->priv->model, rotation - 90);
+	}
 }
 
 static void
 ev_window_cmd_edit_rotate_right (GtkAction *action, EvWindow *ev_window)
 {
-	gint rotation = ev_document_model_get_rotation (ev_window->priv->model);
+	gint rotation;
 
-	ev_document_model_set_rotation (ev_window->priv->model, rotation + 90);
+	if (EV_WINDOW_IS_PRESENTATION (ev_window)) {
+		rotation = ev_view_presentation_get_rotation (EV_VIEW_PRESENTATION (ev_window->priv->presentation_view));
+		ev_view_presentation_set_rotation (EV_VIEW_PRESENTATION (ev_window->priv->presentation_view),
+						   rotation + 90);
+	} else {
+		rotation = ev_document_model_get_rotation (ev_window->priv->model);
+
+		ev_document_model_set_rotation (ev_window->priv->model, rotation + 90);
+	}
 }
 
 static void



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]