return get_doc_point_from_offset (view, *page, x_offset, y_offset, x_new, y_new);
}
+static void
+ev_view_get_area_from_mapping (EvView *view,
+ guint page,
+ GList *mapping_list,
+ gconstpointer data,
+ GdkRectangle *area)
+{
+ EvMapping *mapping;
+
+ mapping = ev_mapping_list_find (mapping_list, data);
+ doc_rect_to_view_rect (view, page, &mapping->area, area);
+ area->x -= view->scroll_x;
+ area->y -= view->scroll_y;
+}
+
+
/*** Hyperref ***/
static EvLink *
ev_view_get_link_at_location (EvView *view,
{
GdkRectangle view_area;
GList *forms_mapping;
- EvMapping *mapping;
forms_mapping = ev_pixbuf_cache_get_form_field_mapping (view->pixbuf_cache,
field->page->index);
- mapping = ev_mapping_list_find (forms_mapping, field);
- doc_rect_to_view_rect (view, field->page->index, &mapping->area, &view_area);
- view_area.x -= view->scroll_x;
- view_area.y -= view->scroll_y;
+ ev_view_get_area_from_mapping (view, field->page->index,
+ forms_mapping,
+ field, &view_area);
return gdk_region_rectangle (&view_area);
}
{
GtkWidget *field_widget = NULL;
GList *form_field_mapping;
- EvMapping *mapping;
GdkRectangle view_area;
if (field->is_read_only)
(GDestroyNotify)g_object_unref);
form_field_mapping = ev_pixbuf_cache_get_form_field_mapping (view->pixbuf_cache, field->page->index);
- mapping = ev_mapping_list_find (form_field_mapping, field);
-
- doc_rect_to_view_rect (view, field->page->index, &mapping->area, &view_area);
- view_area.x -= view->scroll_x;
- view_area.y -= view->scroll_y;
+ ev_view_get_area_from_mapping (view, field->page->index,
+ form_field_mapping,
+ field, &view_area);
gtk_layout_put (GTK_LAYOUT (view), field_widget, view_area.x, view_area.y);
gtk_widget_show (field_widget);
EvFormField *field;
GdkRectangle view_area;
GList *form_field_mapping;
- EvMapping *mapping;
GtkAllocation child_allocation;
GtkRequisition child_requisition;
GtkWidget *child = (GtkWidget *)l->data;
form_field_mapping = ev_pixbuf_cache_get_form_field_mapping (view->pixbuf_cache,
field->page->index);
- mapping = ev_mapping_list_find (form_field_mapping, field);
-
- doc_rect_to_view_rect (view, field->page->index, &mapping->area, &view_area);
- view_area.x -= view->scroll_x;
- view_area.y -= view->scroll_y;
+ ev_view_get_area_from_mapping (view, field->page->index,
+ form_field_mapping,
+ field, &view_area);
gtk_widget_size_request (child, &child_requisition);
if (child_requisition.width != view_area.width ||
EvLink *link,
GdkRectangle *area)
{
- GList *link_mapping;
- EvMapping *mapping;
- gint page;
- gint x_offset = 0, y_offset = 0;
+ GList *link_mapping;
+ gint page;
+ gint x_offset = 0, y_offset = 0;
x += view->scroll_x;
y += view->scroll_y;
find_page_at_location (view, x, y, &page, &x_offset, &y_offset);
link_mapping = ev_pixbuf_cache_get_link_mapping (view->pixbuf_cache, page);
- mapping = ev_mapping_list_find (link_mapping, link);
-
- doc_rect_to_view_rect (view, page, &mapping->area, area);
- area->y -= view->scroll_y;
+ ev_view_get_area_from_mapping (view, page,
+ link_mapping,
+ link, area);
}
static void
EvAnnotation *annot,
GdkRectangle *area)
{
- GList *annots_mapping;
- EvMapping *mapping;
- gint page;
- gint x_offset = 0, y_offset = 0;
+ GList *annots_mapping;
+ gint page;
+ gint x_offset = 0, y_offset = 0;
x += view->scroll_x;
y += view->scroll_y;
find_page_at_location (view, x, y, &page, &x_offset, &y_offset);
annots_mapping = ev_pixbuf_cache_get_annots_mapping (view->pixbuf_cache, page);
- mapping = ev_mapping_list_find (annots_mapping, annot);
-
- doc_rect_to_view_rect (view, page, &mapping->area, area);
- area->y -= view->scroll_y;
+ ev_view_get_area_from_mapping (view, page,
+ annots_mapping,
+ annot, area);
}
static gboolean