Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
path: root/shell/ev-view.c
diff options
context:
space:
mode:
Diffstat (limited to 'shell/ev-view.c')
-rw-r--r--shell/ev-view.c34
1 files changed, 34 insertions, 0 deletions
diff --git a/shell/ev-view.c b/shell/ev-view.c
index 41bf94b..8e18ec4 100644
--- a/shell/ev-view.c
+++ b/shell/ev-view.c
@@ -1123,6 +1123,23 @@ go_to_index (EvView *view, int index)
go_to_link (view, link);
}
+gboolean
+ev_view_can_go_back (EvView *view)
+{
+ int index, n;
+
+ g_return_val_if_fail (EV_IS_HISTORY (view->history), FALSE);
+
+ index = ev_history_get_current_index (view->history);
+ n = ev_history_get_n_links (view->history);
+
+ if (n > 0) {
+ return index != MAX (0, index - 1);
+ } else {
+ return FALSE;
+ }
+}
+
void
ev_view_go_back (EvView *view)
{
@@ -1139,6 +1156,23 @@ ev_view_go_back (EvView *view)
}
}
+gboolean
+ev_view_can_go_forward (EvView *view)
+{
+ int index, n;
+
+ g_return_val_if_fail (EV_IS_HISTORY (view->history), FALSE);
+
+ index = ev_history_get_current_index (view->history);
+ n = ev_history_get_n_links (view->history);
+
+ if (n > 0) {
+ return index != MIN (n - 1, index + 1);
+ } else {
+ return FALSE;
+ }
+}
+
void
ev_view_go_forward (EvView *view)
{