emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master ab5b2e63fa: Respect `x-cursor-fore-pixel' on Haiku


From: Po Lu
Subject: master ab5b2e63fa: Respect `x-cursor-fore-pixel' on Haiku
Date: Sun, 6 Feb 2022 22:13:20 -0500 (EST)

branch: master
commit ab5b2e63fa0b966570cc505fa4a77d16cf3f45d6
Author: Po Lu <luangruo@yahoo.com>
Commit: Po Lu <luangruo@yahoo.com>

    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 eb736f1153..8aad2cbd7f 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.  */);



reply via email to

[Prev in Thread] Current Thread [Next in Thread]