|
|
d6c6b3 |
From a671eb08a98dd8e4637567949af281ce4b7c5496 Mon Sep 17 00:00:00 2001
|
|
|
d6c6b3 |
From: Robert Roth <robert.roth.off@gmail.com>
|
|
|
d6c6b3 |
Date: Sun, 15 Mar 2015 20:39:25 +0200
|
|
|
d6c6b3 |
Subject: previewer: Enable/disable page navigation based on current page
|
|
|
d6c6b3 |
|
|
|
d6c6b3 |
https://bugzilla.gnome.org/show_bug.cgi?id=745840
|
|
|
d6c6b3 |
---
|
|
|
d6c6b3 |
previewer/ev-previewer-window.c | 20 ++++++++++++++++++++
|
|
|
d6c6b3 |
1 file changed, 20 insertions(+)
|
|
|
d6c6b3 |
|
|
|
d6c6b3 |
diff --git a/previewer/ev-previewer-window.c b/previewer/ev-previewer-window.c
|
|
|
d6c6b3 |
index dd34f25..ff2c42c 100644
|
|
|
d6c6b3 |
--- a/previewer/ev-previewer-window.c
|
|
|
d6c6b3 |
+++ b/previewer/ev-previewer-window.c
|
|
|
d6c6b3 |
@@ -334,6 +334,22 @@ view_focus_changed (GtkWidget *widget,
|
|
|
d6c6b3 |
}
|
|
|
d6c6b3 |
|
|
|
d6c6b3 |
static void
|
|
|
d6c6b3 |
+model_page_changed (EvDocumentModel* model,
|
|
|
d6c6b3 |
+ gint old_page,
|
|
|
d6c6b3 |
+ gint new_page,
|
|
|
d6c6b3 |
+ EvPreviewerWindow *window)
|
|
|
d6c6b3 |
+{
|
|
|
d6c6b3 |
+ GtkAction *action;
|
|
|
d6c6b3 |
+ gint n_pages = ev_document_get_n_pages (ev_document_model_get_document (window->model));
|
|
|
d6c6b3 |
+
|
|
|
d6c6b3 |
+ action = gtk_action_group_get_action (window->action_group, "GoPreviousPage");
|
|
|
d6c6b3 |
+ gtk_action_set_sensitive (GTK_ACTION (action), new_page > 0 );
|
|
|
d6c6b3 |
+
|
|
|
d6c6b3 |
+ action = gtk_action_group_get_action (window->action_group, "GoNextPage");
|
|
|
d6c6b3 |
+ gtk_action_set_sensitive (GTK_ACTION (action), new_page < n_pages - 1);
|
|
|
d6c6b3 |
+}
|
|
|
d6c6b3 |
+
|
|
|
d6c6b3 |
+static void
|
|
|
d6c6b3 |
view_sizing_mode_changed (EvDocumentModel *model,
|
|
|
d6c6b3 |
GParamSpec *pspec,
|
|
|
d6c6b3 |
EvPreviewerWindow *window)
|
|
|
d6c6b3 |
@@ -599,6 +615,10 @@ ev_previewer_window_constructor (GType type,
|
|
|
d6c6b3 |
ev_view_set_model (window->view, window->model);
|
|
|
d6c6b3 |
ev_document_model_set_continuous (window->model, FALSE);
|
|
|
d6c6b3 |
|
|
|
d6c6b3 |
+ g_signal_connect_object (window->model, "page-changed",
|
|
|
d6c6b3 |
+ G_CALLBACK (model_page_changed),
|
|
|
d6c6b3 |
+ window, 0);
|
|
|
d6c6b3 |
+
|
|
|
d6c6b3 |
gtk_container_add (GTK_CONTAINER (window->swindow), GTK_WIDGET (window->view));
|
|
|
d6c6b3 |
gtk_widget_show (GTK_WIDGET (window->view));
|
|
|
d6c6b3 |
|
|
|
d6c6b3 |
--
|
|
|
d6c6b3 |
cgit v0.12
|
|
|
d6c6b3 |
|