Subject: bug#54040: 29.0.50; Text becomes blurry on PGTK/Wayland

From: Andrew Cohen <[email-masked]>
Date: Thu, 17 Mar 2022 08:00:16 +0800

I have been trying various mods to try to clarify the status. Don't know
whether or not any of this is useful :( I think all of these were tried
before but I wanted to summarize four cases:

1. The width and height used for the temporary surface: I don't really
   know what the "right" values are, but the current code uses
   FRAME_CR_SURFACE_DESIRED_WIDTH (f), etc. I tried changing this to
   src_rect->width, etc In debugging I can see that these values differ
   (the FRAME_CR_SURFACE width is larger by the pixel-width of the
   scrollbar, e.g., and the height from the src_rect varies a lot from
   call to call while the FRAME_CR_SURFACE stays fixed)

2. Replacing the gdk_window_create_similar_surface with cairo_surface_create_similar.

So that's four possible cases. All fail (in the same way, with blurry
image) EXCEPT

cario_surface_create_similar (FRAME_CR_SURFACE (f),
CAIRO_CONTENT_COLOR_ALPHA, (int) src_rect->width, (int)
src_rect->height)

I see the comment in the bug thread that this breaks the
alpha-background, but it seems to work fine for me? I didn't try much,
just
(set-frame-parameter (selected-frame) 'alpha-background 85)
and it behaved exactly as it did without the change.

I notice that the code for gdk_window_create_similar_surface ends up
calling cairo_surface_create_similar (I think)

I'm happy to continue trying things if you have any other
suggestions. But maybe the switch to cairo_surface_create_similar is OK?

-- 
Andrew Cohen