1
0
mirror of https://gitlab.gnome.org/GNOME/evince synced 2024-07-05 00:59:07 +00:00

a11y: ensure text cached when you request an EvPageAccessible

https://bugzilla.gnome.org/show_bug.cgi?id=724965
This commit is contained in:
Alejandro Piñeiro 2014-04-11 17:08:17 +02:00
parent c421a901e6
commit b5fc924aeb
3 changed files with 22 additions and 0 deletions

View File

@ -654,3 +654,13 @@ ev_page_cache_get_text_log_attrs (EvPageCache *cache,
return FALSE;
}
void
ev_page_cache_ensure_page (EvPageCache *cache,
gint page)
{
g_return_if_fail (EV_IS_PAGE_CACHE (cache));
g_return_if_fail (page >= 0 && page < cache->n_pages);
ev_page_cache_schedule_job_if_needed (cache, page);
}

View File

@ -74,6 +74,8 @@ gboolean ev_page_cache_get_text_log_attrs (EvPageCache *cach
gint page,
PangoLogAttr **log_attrs,
gulong *n_attrs);
void ev_page_cache_ensure_page (EvPageCache *cache,
gint page);
G_END_DECLS
#endif /* EV_PAGE_CACHE_H */

View File

@ -138,11 +138,21 @@ ev_view_accessible_ref_child (AtkObject *obj,
gint i)
{
EvViewAccessible *self;
EvView *view;
g_return_val_if_fail (EV_IS_VIEW_ACCESSIBLE (obj), NULL);
self = EV_VIEW_ACCESSIBLE (obj);
g_return_val_if_fail (i >= 0 || i < ev_view_accessible_get_n_pages (self), NULL);
view = EV_VIEW (gtk_accessible_get_widget (GTK_ACCESSIBLE (obj)));
if (view == NULL)
return NULL;
/* If a given page is requested, we assume that the text would
* be requested soon, so we need to be sure that is cached.*/
if (view->page_cache)
ev_page_cache_ensure_page (view->page_cache, i);
return g_object_ref (g_ptr_array_index (self->priv->children, i));
}