From: Po Lu Date: Sat, 9 Apr 2022 00:41:00 +0000 (+0800) Subject: Fix subpixel AA with alpha-background on Cairo on X X-Git-Tag: emacs-29.0.90~1931^2~694 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=bb7623b9bee14bf428accc5b8cc88fa34fd9c9a2;p=emacs.git 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. --- 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;