aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorPo Lu2022-03-17 11:59:56 +0800
committerPo Lu2022-03-17 11:59:56 +0800
commita06ac9b6fdc0e6edc326c74240be1f7ba4e6471e (patch)
tree2c98e4d3f2d385562a1a703d1c8fff2206179692 /src
parent667775e1ae259dc2fe0dee96ebb506beeef4d5ce (diff)
downloademacs-a06ac9b6fdc0e6edc326c74240be1f7ba4e6471e.tar.gz
emacs-a06ac9b6fdc0e6edc326c74240be1f7ba4e6471e.zip
Restore old PGTK scrolling code
* src/pgtkterm.c (pgtk_copy_bits): Restore old code using cairo_surface_create_similar. (bug#54040)
Diffstat (limited to 'src')
-rw-r--r--src/pgtkterm.c15
1 files changed, 4 insertions, 11 deletions
diff --git a/src/pgtkterm.c b/src/pgtkterm.c
index 9f9768cf2ab..e00ed7fa85d 100644
--- a/src/pgtkterm.c
+++ b/src/pgtkterm.c
@@ -2940,20 +2940,13 @@ pgtk_copy_bits (struct frame *f, cairo_rectangle_t *src_rect,
2940 cairo_rectangle_t *dst_rect) 2940 cairo_rectangle_t *dst_rect)
2941{ 2941{
2942 cairo_t *cr; 2942 cairo_t *cr;
2943 GdkWindow *window;
2944 cairo_surface_t *surface; /* temporary surface */ 2943 cairo_surface_t *surface; /* temporary surface */
2945 int scale;
2946
2947 window = gtk_widget_get_window (FRAME_GTK_WIDGET (f));
2948 2944
2949 surface = 2945 surface =
2950 gdk_window_create_similar_surface (window, CAIRO_CONTENT_COLOR_ALPHA, 2946 cairo_surface_create_similar (FRAME_CR_SURFACE (f),
2951 FRAME_CR_SURFACE_DESIRED_WIDTH (f), 2947 CAIRO_CONTENT_COLOR_ALPHA,
2952 FRAME_CR_SURFACE_DESIRED_HEIGHT 2948 (int) src_rect->width,
2953 (f)); 2949 (int) src_rect->height);
2954
2955 scale = gtk_widget_get_scale_factor (FRAME_GTK_WIDGET (f));
2956 cairo_surface_set_device_scale (surface, scale, scale);
2957 2950
2958 cr = cairo_create (surface); 2951 cr = cairo_create (surface);
2959 cairo_set_source_surface (cr, FRAME_CR_SURFACE (f), -src_rect->x, 2952 cairo_set_source_surface (cr, FRAME_CR_SURFACE (f), -src_rect->x,