Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-page-cache.c
diff options
context:
space:
mode:
authorNickolay V. Shmyrev <nshmyrev@yandex.ru>2007-01-28 13:29:10 (GMT)
committer Nickolay V. Shmyrev <nshmyrev@src.gnome.org>2007-01-28 13:29:10 (GMT)
commit72fc0a73ea845307d6a109678952a0d07f6a1af4 (patch)
tree86bed4423c5863f42203584628c6280e70985023 /shell/ev-page-cache.c
parentf3fd33cd579a92acbd7a86e550424558f973a064 (diff)
History finally works as expected.
2007-01-28 Nickolay V. Shmyrev <nshmyrev@yandex.ru> * 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
Diffstat (limited to 'shell/ev-page-cache.c')
-rw-r--r--shell/ev-page-cache.c22
1 files changed, 22 insertions, 0 deletions
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)