Commit 110a98a7 authored by Joanmarie Diggs's avatar Joanmarie Diggs

libview: Update ATK_STATE_SHOWING when the visible page range changes

https://bugzilla.gnome.org/show_bug.cgi?id=728664
parent 7d1bf5a9
......@@ -61,6 +61,8 @@ struct _EvViewAccessiblePrivate {
GtkScrollType idle_scroll;
gint previous_cursor_page;
gint start_page;
gint end_page;
GPtrArray *children;
};
......@@ -537,3 +539,31 @@ _transform_doc_rect_to_atk_rect (EvViewAccessible *accessible,
atk_rect->x2 = view_rect.x + view_rect.width;
atk_rect->y2 = view_rect.y + view_rect.height;
}
void
ev_view_accessible_set_page_range (EvViewAccessible *accessible,
gint start,
gint end)
{
gint i;
AtkObject *page;
g_return_if_fail (EV_IS_VIEW_ACCESSIBLE (accessible));
for (i = accessible->priv->start_page; i <= accessible->priv->end_page; i++) {
if (i < start || i > end) {
page = g_ptr_array_index (accessible->priv->children, i);
atk_object_notify_state_change (page, ATK_STATE_SHOWING, FALSE);
}
}
for (i = start; i <= end; i++) {
if (i < accessible->priv->start_page || i > accessible->priv->end_page) {
page = g_ptr_array_index (accessible->priv->children, i);
atk_object_notify_state_change (page, ATK_STATE_SHOWING, TRUE);
}
}
accessible->priv->start_page = start;
accessible->priv->end_page = end;
}
......@@ -54,6 +54,9 @@ void ev_view_accessible_set_model (EvViewAccessible *accessible,
EvDocumentModel *model);
gint ev_view_accessible_get_n_pages (EvViewAccessible *accessible);
gint ev_view_accessible_get_relevant_page (EvViewAccessible *accessible);
void ev_view_accessible_set_page_range (EvViewAccessible *accessible,
gint start,
gint end);
void _transform_doc_rect_to_atk_rect (EvViewAccessible *accessible,
gint page,
EvRectangle *doc_rect,
......
......@@ -785,6 +785,9 @@ view_update_range_and_current_page (EvView *view)
view->start_page,
view->end_page,
view->selection_info.selections);
ev_view_accessible_set_page_range (EV_VIEW_ACCESSIBLE (view->accessible),
view->start_page,
view->end_page);
if (ev_pixbuf_cache_get_surface (view->pixbuf_cache, view->current_page))
gtk_widget_queue_draw (GTK_WIDGET (view));
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment