From bb7623b9bee14bf428accc5b8cc88fa34fd9c9a2 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Sat, 9 Apr 2022 08:41:00 +0800 Subject: [PATCH] Fix subpixel AA with alpha-background on Cairo on X * xterm.c (x_set_cr_source_with_gc_foreground) (x_set_cr_source_with_gc_background): Set operator back to OVER if alpha-background isn't to be respected. --- src/xterm.c | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/xterm.c b/src/xterm.c index dc06df246c4..da671731863 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -4240,8 +4240,11 @@ x_set_cr_source_with_gc_foreground (struct frame *f, GC gc, cairo_set_operator (FRAME_CR_CONTEXT (f), CAIRO_OPERATOR_SOURCE); } else - cairo_set_source_rgb (FRAME_CR_CONTEXT (f), color.red / 65535.0, - color.green / 65535.0, color.blue / 65535.0); + { + cairo_set_source_rgb (FRAME_CR_CONTEXT (f), color.red / 65535.0, + color.green / 65535.0, color.blue / 65535.0); + cairo_set_operator (FRAME_CR_CONTEXT (f), CAIRO_OPERATOR_OVER); + } } void @@ -4269,8 +4272,11 @@ x_set_cr_source_with_gc_background (struct frame *f, GC gc, cairo_set_operator (FRAME_CR_CONTEXT (f), CAIRO_OPERATOR_SOURCE); } else - cairo_set_source_rgb (FRAME_CR_CONTEXT (f), color.red / 65535.0, - color.green / 65535.0, color.blue / 65535.0); + { + cairo_set_source_rgb (FRAME_CR_CONTEXT (f), color.red / 65535.0, + color.green / 65535.0, color.blue / 65535.0); + cairo_set_operator (FRAME_CR_CONTEXT (f), CAIRO_OPERATOR_OVER); + } } static const cairo_user_data_key_t xlib_surface_key, saved_drawable_key; -- 2.39.5