From: Nickolay V. Shmyrev Date: Sun, 28 Jan 2007 14:12:08 +0000 (+0000) Subject: Store link before jump, not the destination. For me it seems like more X-Git-Tag: EVINCE_0_7_2~60 X-Git-Url: https://www.fi.muni.cz/~kas/git//home/kas/public_html/git/?a=commitdiff_plain;h=1740f9ca0bb04fbc0afc9ddb9d23a6aa2090baa1;p=evince.git Store link before jump, not the destination. For me it seems like more 2007-01-28 Nickolay V. Shmyrev * shell/ev-navigation-action.c: (new_history_menu_item): * shell/ev-page-cache.c: (ev_page_cache_set_current_page_history): * shell/ev-view.c: (ev_view_handle_link): * shell/ev-window.c: Store link before jump, not the destination. For me it seems like more natural history behavior. svn path=/trunk/; revision=2261 --- diff --git a/ChangeLog b/ChangeLog index 867c2fd0..151262c9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2007-01-28 Nickolay V. Shmyrev + + * shell/ev-navigation-action.c: (new_history_menu_item): + * shell/ev-page-cache.c: (ev_page_cache_set_current_page_history): + * shell/ev-view.c: (ev_view_handle_link): + * shell/ev-window.c: + + Store link before jump, not the destination. For me it + seems like more natural history behavior. + 2007-01-28 Nickolay V. Shmyrev * shell/ev-navigation-action.c: (activate_menu_item_cb), diff --git a/shell/ev-navigation-action.c b/shell/ev-navigation-action.c index dc98ce75..88fe67b6 100644 --- a/shell/ev-navigation-action.c +++ b/shell/ev-navigation-action.c @@ -93,10 +93,6 @@ new_history_menu_item (EvNavigationAction *action, const char *title; title = ev_link_get_title (link); - - if (!title) - title = _("External link"); - item = gtk_image_menu_item_new_with_label (title); g_object_set_data (G_OBJECT (item), "index", GINT_TO_POINTER (index)); diff --git a/shell/ev-page-cache.c b/shell/ev-page-cache.c index a6d7bd9e..7ea0c0f9 100644 --- a/shell/ev-page-cache.c +++ b/shell/ev-page-cache.c @@ -340,8 +340,8 @@ void ev_page_cache_set_current_page_history (EvPageCache *page_cache, int page) { - if (page != page_cache->current_page) - g_signal_emit (page_cache, signals [HISTORY_CHANGED], 0, page); + if (abs (page - page_cache->current_page) > 1) + g_signal_emit (page_cache, signals [HISTORY_CHANGED], 0, page_cache->current_page); ev_page_cache_set_current_page (page_cache, page); } diff --git a/shell/ev-view.c b/shell/ev-view.c index 37ab5366..7275fb64 100644 --- a/shell/ev-view.c +++ b/shell/ev-view.c @@ -1347,6 +1347,8 @@ ev_view_handle_link (EvView *view, EvLink *link) action = ev_link_get_action (link); if (!action) return; + + g_signal_emit (view, signals[SIGNAL_HANDLE_LINK], 0, link); type = ev_link_action_get_action_type (action); @@ -1365,7 +1367,6 @@ ev_view_handle_link (EvView *view, EvLink *link) g_signal_emit (view, signals[SIGNAL_EXTERNAL_LINK], 0, action); break; } - g_signal_emit (view, signals[SIGNAL_HANDLE_LINK], 0, link); } static gchar * diff --git a/shell/ev-window.c b/shell/ev-window.c index 51b8abde..1d36a12b 100644 --- a/shell/ev-window.c +++ b/shell/ev-window.c @@ -4340,7 +4340,10 @@ do_action_named (EvWindow *window, EvLinkAction *action) static void view_handle_link_cb (EvView *view, EvLink *link, EvWindow *window) { - ev_history_add_link (window->priv->history, link); + int current_page = ev_page_cache_get_current_page (window->priv->page_cache); + ev_history_add_page (window->priv->history, + current_page, + ev_page_cache_get_page_label (window->priv->page_cache, current_page)); } static void