]> git.eshelyaron.com Git - emacs.git/commitdiff
Respect `x-cursor-fore-pixel' on Haiku
authorPo Lu <luangruo@yahoo.com>
Mon, 7 Feb 2022 03:00:25 +0000 (03:00 +0000)
committerPo Lu <luangruo@yahoo.com>
Mon, 7 Feb 2022 03:00:25 +0000 (03:00 +0000)
* src/haikufns.c (haiku_set_cursor_color): Respect
`x-cursor-fore-pixel'.
(syms_of_haikufns): Declare variable `x-cursor-fore-pixel'.

src/haikufns.c

index eb736f1153dcdde6ec8b4a857b04a0b026479862..8aad2cbd7f030f52b862b8b57554ea315bb6b35e 100644 (file)
@@ -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.  */);