X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=blobdiff_plain;ds=inline;f=shell%2Fev-view.c;h=4750b4d282ab3953169b132b9ee69f74eab78dbd;hb=dbe299f7b2412d318f0eda7c401feba68c8663e3;hp=cf2c4695c7c0280476af8c300d003a20da278f9b;hpb=2ab647bef73e49d2327172c7593a49887c60ff8f;p=evince.git diff --git a/shell/ev-view.c b/shell/ev-view.c index cf2c4695..4750b4d2 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -28,7 +28,6 @@ #include "ev-marshal.h" #include "ev-view.h" #include "ev-document-find.h" -#include "ev-history.h" #define EV_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), EV_TYPE_VIEW, EvViewClass)) #define EV_IS_VIEW_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), EV_TYPE_VIEW)) @@ -905,12 +904,6 @@ ev_view_set_document (EvView *view, if (old_page != ev_view_get_page (view)) g_signal_emit (view, page_changed_signal, 0); - - if (view->history) { - g_object_unref (view->history); - } - view->history = ev_history_new (); - ev_history_add_page (view->history, ev_view_get_page (view)); } } @@ -975,7 +968,6 @@ ev_view_go_back (EvView *view) if (n > 0) { index = MAX (0, index - 1); ev_history_set_current_index (view->history, index); - go_to_index (view, index); } } @@ -992,7 +984,6 @@ ev_view_go_forward (EvView *view) if (n > 0) { index = MIN (n - 1, index + 1); ev_history_set_current_index (view->history, index); - go_to_index (view, index); } } @@ -1117,3 +1108,30 @@ ev_view_get_find_status_message (EvView *view) view->results_on_this_page); } } + +static void +history_index_changed_cb (EvHistory *history, + GParamSpec *pspec, + EvView *view) +{ + int index; + + index = ev_history_get_current_index (history); + go_to_index (view, index); +} + +void +ev_view_set_history (EvView *view, + EvHistory *history) +{ + if (view->history) { + g_object_unref (view->history); + } + + view->history = g_object_ref (history); + ev_history_add_page (view->history, ev_view_get_page (view)); + + g_signal_connect (view->history, "notify::index", + G_CALLBACK (history_index_changed_cb), + view); +}