diff options
author | Carlos 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) |
commit | 69e9b806bc1420056bcd4d21d81aba0e74f3afdf (patch) | |
tree | d67b7357d5d435a1ff4001b178d7ea939e1f8c4f | |
parent | 468078222d0731715c875f52304bfb942f5b2942 (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-- | ChangeLog | 8 | ||||
-rw-r--r-- | shell/ev-view-private.h | 6 | ||||
-rw-r--r-- | shell/ev-view.c | 10 | ||||
-rw-r--r-- | shell/ev-window.c | 2 |
4 files changed, 23 insertions, 3 deletions
@@ -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)); |