From 4287f17c257eb997c013ce4dcf4a0b82643f1c74 Mon Sep 17 00:00:00 2001 From: "Owen W. Taylor" Date: Mon, 3 Mar 2014 12:44:44 -0500 Subject: EvPixbufCache: Handle backends that don't render a selection Handle the case where ev_selection_render_selection() doesn't actually render a surface - this happens when a backend doesn't implement render_selection(). https://bugzilla.gnome.org/show_bug.cgi?id=723431 origin commit: https://git.gnome.org/browse/evince/commit/?id=c5a338c fixes https://github.com/mate-desktop/atril/issues/283 --- libview/ev-pixbuf-cache.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) (limited to 'libview') diff --git a/libview/ev-pixbuf-cache.c b/libview/ev-pixbuf-cache.c index 506d1316..2813288c 100644 --- a/libview/ev-pixbuf-cache.c +++ b/libview/ev-pixbuf-cache.c @@ -287,7 +287,8 @@ copy_job_to_job_info (EvJobRender *job_render, job_info->selection_points = job_render->selection_points; job_info->selection_region = cairo_region_reference (job_render->selection_region); job_info->selection = cairo_surface_reference (job_render->selection); - set_device_scale_on_surface (job_info->selection, job_info->device_scale); + if (job_info->selection) + set_device_scale_on_surface (job_info->selection, job_info->device_scale); g_assert (job_info->selection_points.x1 >= 0); job_info->points_set = TRUE; } @@ -1026,7 +1027,8 @@ ev_pixbuf_cache_get_selection_surface (EvPixbufCache *pixbuf_cache, old_points, job_info->selection_style, &text, &base); - set_device_scale_on_surface (job_info->selection, job_info->device_scale); + if (job_info->selection) + set_device_scale_on_surface (job_info->selection, job_info->device_scale); job_info->selection_points = job_info->target_points; g_object_unref (rc); ev_document_doc_mutex_unlock (); -- cgit v1.2.1