diff options
| author | Po Lu | 2022-02-18 15:48:50 +0800 |
|---|---|---|
| committer | Po Lu | 2022-02-18 15:50:25 +0800 |
| commit | ef1dfd2261f717136896b73dc96e7c3fbd72c14d (patch) | |
| tree | 04bf299412c119426f74f2bf1155742b32069cfb /src | |
| parent | 9a9a3390adc7ed286442300d46c87ecfdc764614 (diff) | |
| download | emacs-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.c | 4 |
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); |