summaryrefslogtreecommitdiff
path: root/src/pgtkterm.c
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2022-02-18 15:48:50 +0800
committerPo Lu <luangruo@yahoo.com>2022-02-18 15:50:25 +0800
commitef1dfd2261f717136896b73dc96e7c3fbd72c14d (patch)
tree04bf299412c119426f74f2bf1155742b32069cfb /src/pgtkterm.c
parent9a9a3390adc7ed286442300d46c87ecfdc764614 (diff)
downloademacs-ef1dfd2261f717136896b73dc96e7c3fbd72c14d.tar.gz
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/pgtkterm.c')
-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,
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);