diff options
author | Owen W. Taylor <[email protected]> | 2014-02-27 19:20:17 -0500 |
---|---|---|
committer | raveit65 <[email protected]> | 2018-03-26 15:35:47 +0200 |
commit | 58486bb360b2880eefe376b1ba9fdac3b1268422 (patch) | |
tree | 6067d8709689207cf2464e6d32bbf7237b1778bd /libview/ev-pixbuf-cache.c | |
parent | f4b94ea0e196f38dbb6b04fc9302a1986388b037 (diff) | |
download | atril-58486bb360b2880eefe376b1ba9fdac3b1268422.tar.bz2 atril-58486bb360b2880eefe376b1ba9fdac3b1268422.tar.xz |
EvView: render correctly on hi-dpi displays
Make EvPixbufCache generate surfaces with extra resolution based on
gtk_widget_get_scale_factor(). Handle cairo surfaces with a device
scale in ev_view_draw(). Trigger an update of the pixbuf cache when
the scale factor changes.
https://bugzilla.gnome.org/show_bug.cgi?id=723431
origin commit:
https://git.gnome.org/browse/evince/commit/?id=a612f8
Diffstat (limited to 'libview/ev-pixbuf-cache.c')
-rw-r--r-- | libview/ev-pixbuf-cache.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/libview/ev-pixbuf-cache.c b/libview/ev-pixbuf-cache.c index 6db650fc..89c5cd5e 100644 --- a/libview/ev-pixbuf-cache.c +++ b/libview/ev-pixbuf-cache.c @@ -296,9 +296,9 @@ copy_job_to_job_info (EvJobRender *job_render, job_info->selection_points = job_render->selection_points; job_info->selection = cairo_surface_reference (job_render->selection); - job_info->selection_scale = job_render->scale; if (job_info->selection) set_device_scale_on_surface (job_info->selection, job_info->device_scale); + job_info->selection_scale = job_render->scale * job_info->device_scale; g_assert (job_info->selection_points.x1 >= 0); job_info->selection_region_points = job_render->selection_points; @@ -1093,7 +1093,7 @@ ev_pixbuf_cache_get_selection_surface (EvPixbufCache *pixbuf_cache, if (job_info->selection) set_device_scale_on_surface (job_info->selection, job_info->device_scale); job_info->selection_points = job_info->target_points; - job_info->selection_scale = scale; + job_info->selection_scale = scale * job_info->device_scale; g_object_unref (rc); ev_document_doc_mutex_unlock (); } |