From ab5b2e63fa0b966570cc505fa4a77d16cf3f45d6 Mon Sep 17 00:00:00 2001 From: Po Lu Date: Mon, 7 Feb 2022 03:00:25 +0000 Subject: [PATCH] Respect `x-cursor-fore-pixel' on Haiku * src/haikufns.c (haiku_set_cursor_color): Respect `x-cursor-fore-pixel'. (syms_of_haikufns): Declare variable `x-cursor-fore-pixel'. --- src/haikufns.c | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/haikufns.c b/src/haikufns.c index eb736f1153d..8aad2cbd7f0 100644 --- a/src/haikufns.c +++ b/src/haikufns.c @@ -1393,7 +1393,7 @@ haiku_set_cursor_color (struct frame *f, Lisp_Object arg, Lisp_Object oldval) CHECK_STRING (arg); block_input (); - Emacs_Color color; + Emacs_Color color, fore_pixel; if (haiku_get_color (SSDATA (arg), &color)) { @@ -1403,6 +1403,17 @@ haiku_set_cursor_color (struct frame *f, Lisp_Object arg, Lisp_Object oldval) } FRAME_CURSOR_COLOR (f) = color; + + if (STRINGP (Vx_cursor_fore_pixel)) + { + if (haiku_get_color (SSDATA (Vx_cursor_fore_pixel), + &fore_pixel)) + error ("Bad color %s", Vx_cursor_fore_pixel); + FRAME_OUTPUT_DATA (f)->cursor_fg = fore_pixel.pixel; + } + else + FRAME_OUTPUT_DATA (f)->cursor_fg = FRAME_BACKGROUND_PIXEL (f); + if (FRAME_VISIBLE_P (f)) { gui_update_cursor (f, 0); @@ -2685,6 +2696,10 @@ syms_of_haikufns (void) doc: /* SKIP: real doc in xfns.c. */); Vx_max_tooltip_size = Fcons (make_fixnum (80), make_fixnum (40)); + DEFVAR_LISP ("x-cursor-fore-pixel", Vx_cursor_fore_pixel, + doc: /* SKIP: real doc in xfns.c. */); + Vx_cursor_fore_pixel = Qnil; + #ifdef USE_BE_CAIRO DEFVAR_LISP ("cairo-version-string", Vcairo_version_string, doc: /* Version info for cairo. */); -- 2.39.5