summaryrefslogtreecommitdiff
path: root/libspectre/spectre-document.c
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2008-06-16 20:30:05 +0200
committerCarlos Garcia Campos <carlosgc@gnome.org>2008-06-16 20:30:05 +0200
commit74380315b07922807a6ce655169211b26e6c2711 (patch)
tree0576aba32139365c5d4335b431433e0a20e3eb86 /libspectre/spectre-document.c
parenta3a32f0a024c2bc333127abb9d1cad08331ceb5b (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.c9
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;