diff options
author | Sébastien Wilmet <swilmet@gnome.org> | 2015-06-28 18:51:20 +0200 |
---|---|---|
committer | Sébastien Wilmet <swilmet@gnome.org> | 2015-06-28 18:54:52 +0200 |
commit | 1750f7232ca87c32b560ec310427fc1cc47abd36 (patch) | |
tree | a1359c1379e309037128a525c4162c3ded77ecc8 | |
parent | 2fa4b185355c0e92d78cc80d488a00a49ade50ee (diff) | |
download | gedit-wip/printing-enhancements.tar.gz |
print-preview: begin support of selected pages to printwip/printing-enhancements
-rw-r--r-- | gedit/gedit-print-preview.c | 32 |
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)); |