aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-02-18 15:48:50 +0800
committerPo Lu2022-02-18 15:50:25 +0800
commitef1dfd2261f717136896b73dc96e7c3fbd72c14d (patch)
tree04bf299412c119426f74f2bf1155742b32069cfb /src
parent9a9a3390adc7ed286442300d46c87ecfdc764614 (diff)
downloademacs-ef1dfd2261f717136896b73dc96e7c3fbd72c14d.tar.gz
emacs-ef1dfd2261f717136896b73dc96e7c3fbd72c14d.zip
Fix blurry text on multiple scale monitor setups
* src/pgtkterm.c (pgtk_copy_bits): Preserve window scale factor on temporary surface. (bug#54040)
Diffstat (limited to 'src')
-rw-r--r--src/pgtkterm.c4
1 files changed, 4 insertions, 0 deletions
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,
2927 cairo_t *cr; 2927 cairo_t *cr;
2928 GdkWindow *window; 2928 GdkWindow *window;
2929 cairo_surface_t *surface; /* temporary surface */ 2929 cairo_surface_t *surface; /* temporary surface */
2930 int scale;
2930 2931
2931 window = gtk_widget_get_window (FRAME_GTK_WIDGET (f)); 2932 window = gtk_widget_get_window (FRAME_GTK_WIDGET (f));
2932 2933
@@ -2936,6 +2937,9 @@ pgtk_copy_bits (struct frame *f, cairo_rectangle_t *src_rect,
2936 FRAME_CR_SURFACE_DESIRED_HEIGHT 2937 FRAME_CR_SURFACE_DESIRED_HEIGHT
2937 (f)); 2938 (f));
2938 2939
2940 scale = gtk_widget_get_scale_factor (FRAME_GTK_WIDGET (f));
2941 cairo_surface_set_device_scale (surface, scale, scale);
2942
2939 cr = cairo_create (surface); 2943 cr = cairo_create (surface);
2940 cairo_set_source_surface (cr, FRAME_CR_SURFACE (f), -src_rect->x, 2944 cairo_set_source_surface (cr, FRAME_CR_SURFACE (f), -src_rect->x,
2941 -src_rect->y); 2945 -src_rect->y);