]> granicus.if.org Git - vim/commitdiff
patch 9.0.0454: incorrect color for modeless selection with GTK v9.0.0454
authorYour Name <you@example.com>
Tue, 13 Sep 2022 10:25:54 +0000 (11:25 +0100)
committerBram Moolenaar <Bram@vim.org>
Tue, 13 Sep 2022 10:25:54 +0000 (11:25 +0100)
Problem:    Incorrect color for modeless selection with GTK.
Solution:   Use simple inversion instead of XOR. (closes #11111)

src/gui_gtk_x11.c
src/version.c

index d0d946cc0e5a54299973ef3b6885b62226e2cea7..21a6ed1090f4130b4bc16441993a3a73a2fe3713 100644 (file)
@@ -6261,7 +6261,7 @@ gui_mch_invert_rectangle(int r, int c, int nr, int nc)
     };
     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, int nr, int nc)
     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);
index 9701d6d8201203f8550784b661876c3861040c3b..9208d6a0cc0afb7888b4b2ebd4172336adacb282 100644 (file)
@@ -703,6 +703,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    454,
 /**/
     453,
 /**/