Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2006-12-24 15:19:13 (GMT)
committer Carlos Garcia Campos <carlosgc@src.gnome.org>2006-12-24 15:19:13 (GMT)
commit69e9b806bc1420056bcd4d21d81aba0e74f3afdf (patch)
treed67b7357d5d435a1ff4001b178d7ea939e1f8c4f
parent468078222d0731715c875f52304bfb942f5b2942 (diff)
Restore zoom settings when back from presentation mode.
2006-12-24 Carlos Garcia Campos <carlosgc@gnome.org> * shell/ev-window.c: (ev_window_run_presentation): * shell/ev-view-private.h: * shell/ev-view.c: (ev_view_set_presentation): Restore zoom settings when back from presentation mode.
-rw-r--r--ChangeLog8
-rw-r--r--shell/ev-view-private.h6
-rw-r--r--shell/ev-view.c10
-rw-r--r--shell/ev-window.c2
4 files changed, 23 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index e64bb7d..361fc71 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,11 @@
+2006-12-24 Carlos Garcia Campos <carlosgc@gnome.org>
+
+ * shell/ev-window.c: (ev_window_run_presentation):
+ * shell/ev-view-private.h:
+ * shell/ev-view.c: (ev_view_set_presentation):
+
+ Restore zoom settings when back from presentation mode.
+
2006-12-24 Wouter Bolsterlee <wbolster@cvs.gnome.org>
* shell/ev-window.c: (ev_window_run_presentation):
diff --git a/shell/ev-view-private.h b/shell/ev-view-private.h
index e60795e..d03a936 100644
--- a/shell/ev-view-private.h
+++ b/shell/ev-view-private.h
@@ -105,9 +105,13 @@ struct _EvView {
gboolean dual_page;
gboolean fullscreen;
gboolean presentation;
- EvPresentationState presentation_state;
EvSizingMode sizing_mode;
+ /* Presentation */
+ EvPresentationState presentation_state;
+ EvSizingMode sizing_mode_saved;
+ double scale_saved;
+
/* Common for button press handling */
int pressed_button;
diff --git a/shell/ev-view.c b/shell/ev-view.c
index 0db0536..8d65fb4 100644
--- a/shell/ev-view.c
+++ b/shell/ev-view.c
@@ -3409,6 +3409,16 @@ ev_view_set_presentation (EvView *view,
view->presentation = presentation;
view->pending_scroll = SCROLL_TO_PAGE_POSITION;
+
+ if (presentation) {
+ view->sizing_mode_saved = view->sizing_mode;
+ view->scale_saved = view->scale;
+ ev_view_set_sizing_mode (view, EV_SIZING_BEST_FIT);
+ } else {
+ ev_view_set_sizing_mode (view, view->sizing_mode_saved);
+ ev_view_set_zoom (view, view->scale_saved, FALSE);
+ }
+
gtk_widget_queue_resize (GTK_WIDGET (view));
if (GTK_WIDGET_REALIZED (view)) {
diff --git a/shell/ev-window.c b/shell/ev-window.c
index db296f1..ce956b9 100644
--- a/shell/ev-window.c
+++ b/shell/ev-window.c
@@ -2570,8 +2570,6 @@ ev_window_run_presentation (EvWindow *window)
ev_view_set_presentation (EV_VIEW (window->priv->view), TRUE);
ev_window_update_presentation_action (window);
- ev_view_set_sizing_mode (EV_VIEW (window->priv->view), EV_SIZING_BEST_FIT);
-
gtk_widget_grab_focus (window->priv->view);
gtk_window_fullscreen (GTK_WINDOW (window));