From 72fc0a73ea845307d6a109678952a0d07f6a1af4 Mon Sep 17 00:00:00 2001 From: Nickolay V. Shmyrev Date: Sun, 28 Jan 2007 13:29:10 +0000 Subject: History finally works as expected. 2007-01-28 Nickolay V. Shmyrev * shell/ev-navigation-action.c: (activate_menu_item_cb), (ev_navigation_action_class_init): * shell/ev-navigation-action.h: * shell/ev-page-action.c: (activate_cb): * shell/ev-page-cache.c: (ev_page_cache_class_init), (ev_page_cache_set_current_page_history): * shell/ev-page-cache.h: * shell/ev-sidebar-thumbnails.c: (ev_sidebar_tree_selection_changed), (ev_sidebar_icon_selection_changed), (page_changed_cb): * shell/ev-view-private.h: * shell/ev-view.c: (ev_view_handle_link), (ev_view_class_init): * shell/ev-view.h: * shell/ev-window.c: (page_changed_cb), (history_changed_cb), (ev_window_setup_document), (ev_window_load_job_cb): * shell/ev-window.h: History finally works as expected. svn path=/trunk/; revision=2259 --- (limited to 'shell/ev-page-cache.c') diff --git a/shell/ev-page-cache.c b/shell/ev-page-cache.c index c1af7d2..a6d7bd9 100644 --- a/shell/ev-page-cache.c +++ b/shell/ev-page-cache.c @@ -45,11 +45,13 @@ struct _EvPageCacheClass GObjectClass parent_class; void (* page_changed) (EvPageCache *page_cache, gint page); + void (* history_changed) (EvPageCache *page_cache, gint page); }; enum { PAGE_CHANGED, + HISTORY_CHANGED, N_SIGNALS, }; @@ -87,6 +89,16 @@ ev_page_cache_class_init (EvPageCacheClass *class) G_TYPE_NONE, 1, G_TYPE_INT); + signals [HISTORY_CHANGED] = + g_signal_new ("history-changed", + EV_TYPE_PAGE_CACHE, + G_SIGNAL_RUN_LAST, + G_STRUCT_OFFSET (EvPageCacheClass, history_changed), + NULL, NULL, + g_cclosure_marshal_VOID__INT, + G_TYPE_NONE, 1, + G_TYPE_INT); + } static void @@ -324,6 +336,16 @@ ev_page_cache_set_current_page (EvPageCache *page_cache, g_signal_emit (page_cache, signals[PAGE_CHANGED], 0, page); } +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); + + ev_page_cache_set_current_page (page_cache, page); +} + gboolean ev_page_cache_set_page_label (EvPageCache *page_cache, const char *page_label) -- cgit v0.9.1