summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSébastien Wilmet <swilmet@gnome.org>2015-06-28 18:51:20 +0200
committerSébastien Wilmet <swilmet@gnome.org>2015-06-28 18:54:52 +0200
commit1750f7232ca87c32b560ec310427fc1cc47abd36 (patch)
treea1359c1379e309037128a525c4162c3ded77ecc8
parent2fa4b185355c0e92d78cc80d488a00a49ade50ee (diff)
downloadgedit-wip/printing-enhancements.tar.gz
print-preview: begin support of selected pages to printwip/printing-enhancements
-rw-r--r--gedit/gedit-print-preview.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/gedit/gedit-print-preview.c b/gedit/gedit-print-preview.c
index a74dddd28..444eea6df 100644
--- a/gedit/gedit-print-preview.c
+++ b/gedit/gedit-print-preview.c
@@ -355,6 +355,26 @@ prev_button_clicked (GtkWidget *button,
gdk_event_free (event);
}
+/* Skip unselected pages. */
+static gboolean
+adjust_nth_page_forward (GeditPrintPreview *preview,
+ gint *page)
+{
+ gint n_pages = get_n_pages (preview);
+ gint new_page;
+
+ for (new_page = *page; new_page < n_pages; new_page++)
+ {
+ if (gtk_print_operation_preview_is_selected (preview->gtk_preview, new_page))
+ {
+ *page = new_page;
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
static void
next_button_clicked (GtkWidget *button,
GeditPrintPreview *preview)
@@ -371,7 +391,17 @@ next_button_clicked (GtkWidget *button,
}
else
{
- page = preview->cur_page + preview->n_columns;
+ gint i;
+
+ page = preview->cur_page;
+ for (i = 0; i < preview->n_columns; i++)
+ {
+ page++;
+ if (!adjust_nth_page_forward (preview, &page))
+ {
+ break;
+ }
+ }
}
goto_page (preview, MIN (page, n_pages - 1));