Skip to content

Commit

Permalink
Check legal boundaries of accessible pages
Browse files Browse the repository at this point in the history
Fixes #302

Keep the accessible view end page under the limits of the document.
Sometimes when a document is reloaded, it may have less pages making
the end page higher than the actual number of pages.

Fix end_page reset after reload a page

When a document is reloaded, and the accessible end_page is higher
than the number of pages, it must be re-initialized to the number
of pages minus one because it refers to elements in an array.

Fix https://bugzilla.gnome.org/show_bug.cgi?id=735744

origin commits:
https://git.gnome.org/browse/evince/commit/?id=feff531
https://git.gnome.org/browse/evince/commit/?id=e6e0d29
  • Loading branch information
gpoo authored and raveit65 committed Mar 16, 2018
1 parent 83efd99 commit 005d885
Showing 1 changed file with 7 additions and 0 deletions.
7 changes: 7 additions & 0 deletions libview/ev-view-accessible.c
Original file line number Diff line number Diff line change
Expand Up @@ -380,6 +380,13 @@ initialize_children (EvViewAccessible *self)
child = ev_page_accessible_new (self, i);
g_ptr_array_add (self->priv->children, child);
}
/* When a document is reloaded, it may have less pages.
* We need to update the end page accordingly to avoid
* invalid access to self->priv->children
* See https://bugzilla.gnome.org/show_bug.cgi?id=735744
*/
if (self->priv->end_page >= n_pages)
self->priv->end_page = n_pages - 1;
}

static void
Expand Down

0 comments on commit 005d885

Please sign in to comment.