diff options
| author | Po Lu | 2022-03-17 11:59:56 +0800 |
|---|---|---|
| committer | Po Lu | 2022-03-17 11:59:56 +0800 |
| commit | a06ac9b6fdc0e6edc326c74240be1f7ba4e6471e (patch) | |
| tree | 2c98e4d3f2d385562a1a703d1c8fff2206179692 /src | |
| parent | 667775e1ae259dc2fe0dee96ebb506beeef4d5ce (diff) | |
| download | emacs-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.c | 15 |
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, |