From: Po Lu Date: Fri, 18 Feb 2022 07:48:50 +0000 (+0800) Subject: Fix blurry text on multiple scale monitor setups X-Git-Tag: emacs-29.0.90~2252 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=ef1dfd2261f717136896b73dc96e7c3fbd72c14d;p=emacs.git Fix blurry text on multiple scale monitor setups * src/pgtkterm.c (pgtk_copy_bits): Preserve window scale factor on temporary surface. (bug#54040) --- diff --git a/src/pgtkterm.c b/src/pgtkterm.c index 65408801cfd..54b65ac54e4 100644 --- a/src/pgtkterm.c +++ b/src/pgtkterm.c @@ -2927,6 +2927,7 @@ pgtk_copy_bits (struct frame *f, cairo_rectangle_t *src_rect, cairo_t *cr; GdkWindow *window; cairo_surface_t *surface; /* temporary surface */ + int scale; window = gtk_widget_get_window (FRAME_GTK_WIDGET (f)); @@ -2936,6 +2937,9 @@ pgtk_copy_bits (struct frame *f, cairo_rectangle_t *src_rect, FRAME_CR_SURFACE_DESIRED_HEIGHT (f)); + scale = gtk_widget_get_scale_factor (FRAME_GTK_WIDGET (f)); + cairo_surface_set_device_scale (surface, scale, scale); + cr = cairo_create (surface); cairo_set_source_surface (cr, FRAME_CR_SURFACE (f), -src_rect->x, -src_rect->y);