diff options
author | Carlos Garcia Campos <carlosgc@gnome.org> | 2008-06-16 20:30:05 +0200 |
---|---|---|
committer | Carlos Garcia Campos <carlosgc@gnome.org> | 2008-06-16 20:30:05 +0200 |
commit | 74380315b07922807a6ce655169211b26e6c2711 (patch) | |
tree | 0576aba32139365c5d4335b431433e0a20e3eb86 /libspectre/spectre-document.c | |
parent | a3a32f0a024c2bc333127abb9d1cad08331ceb5b (diff) |
Take into account the document page order when getting a page by its index
Diffstat (limited to 'libspectre/spectre-document.c')
-rw-r--r-- | libspectre/spectre-document.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/libspectre/spectre-document.c b/libspectre/spectre-document.c index e971eb8..98e7a9a 100644 --- a/libspectre/spectre-document.c +++ b/libspectre/spectre-document.c @@ -240,10 +240,15 @@ spectre_document_get_page (SpectreDocument *document, unsigned int page_index) { SpectrePage *page; + unsigned int index; _spectre_return_val_if_fail (document != NULL, NULL); - if (page_index >= spectre_document_get_n_pages (document)) { + index = (document->doc->pageorder == DESCEND) ? + (document->doc->numpages - 1) - page_index : + page_index; + + if (index >= spectre_document_get_n_pages (document)) { document->status = SPECTRE_STATUS_INVALID_PAGE; return NULL; } @@ -253,7 +258,7 @@ spectre_document_get_page (SpectreDocument *document, return NULL; } - page = _spectre_page_new (page_index, document->doc); + page = _spectre_page_new (index, document->doc); if (!page) { document->status = SPECTRE_STATUS_NO_MEMORY; return NULL; |