# HG changeset patch # User Bram Moolenaar # Date 1663065005 -7200 # Node ID 722cd5d0f92a445f9a4319c552f3737a29cd913a # Parent 43ac83cc45ab05f79958b925c4fbf11c59602875 patch 9.0.0454: incorrect color for modeless selection with GTK Commit: https://github.com/vim/vim/commit/810cb5a3bf73ff4b084f483aa87cd49c1111bfa9 Author: Your Name Date: Tue Sep 13 11:25:54 2022 +0100 patch 9.0.0454: incorrect color for modeless selection with GTK Problem: Incorrect color for modeless selection with GTK. Solution: Use simple inversion instead of XOR. (closes https://github.com/vim/vim/issues/11111) diff --git a/src/gui_gtk_x11.c b/src/gui_gtk_x11.c --- a/src/gui_gtk_x11.c +++ b/src/gui_gtk_x11.c @@ -6261,7 +6261,7 @@ gui_mch_invert_rectangle(int r, int c, i }; cairo_t * const cr = cairo_create(gui.surface); - set_cairo_source_rgba_from_color(cr, gui.norm_pixel ^ gui.back_pixel); + cairo_set_source_rgba(cr, 1.0, 1.0, 1.0, 1.0); # if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1,9,2) cairo_set_operator(cr, CAIRO_OPERATOR_DIFFERENCE); # else @@ -6281,13 +6281,9 @@ gui_mch_invert_rectangle(int r, int c, i if (gui.drawarea->window == NULL) return; - values.foreground.pixel = gui.norm_pixel ^ gui.back_pixel; - values.background.pixel = gui.norm_pixel ^ gui.back_pixel; - values.function = GDK_XOR; + values.function = GDK_INVERT; invert_gc = gdk_gc_new_with_values(gui.drawarea->window, &values, - GDK_GC_FOREGROUND | - GDK_GC_BACKGROUND | GDK_GC_FUNCTION); gdk_gc_set_exposures(invert_gc, gui.visibility != GDK_VISIBILITY_UNOBSCURED); diff --git a/src/version.c b/src/version.c --- a/src/version.c +++ b/src/version.c @@ -704,6 +704,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 454, +/**/ 453, /**/ 452,