emacs-diffs
[Top][All Lists]
Advanced

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

[Emacs-diffs] Changes to emacs/src/xfns.c


From: Richard M. Stallman
Subject: [Emacs-diffs] Changes to emacs/src/xfns.c
Date: Tue, 27 Aug 2002 14:45:01 -0400

Index: emacs/src/xfns.c
diff -c emacs/src/xfns.c:1.554 emacs/src/xfns.c:1.555
*** emacs/src/xfns.c:1.554      Tue Jul 16 11:50:04 2002
--- emacs/src/xfns.c    Tue Aug 27 14:45:01 2002
***************
*** 183,191 ****
  
  Lisp_Object Vx_pixel_size_width_font_regexp;
  
  Lisp_Object Qauto_raise;
  Lisp_Object Qauto_lower;
! Lisp_Object Qbar, Qhbar;
  Lisp_Object Qborder_color;
  Lisp_Object Qborder_width;
  Lisp_Object Qbox;
--- 183,194 ----
  
  Lisp_Object Vx_pixel_size_width_font_regexp;
  
+ /* How to blink the cursor off.  */
+ Lisp_Object Vblink_cursor_alist;
+ 
  Lisp_Object Qauto_raise;
  Lisp_Object Qauto_lower;
! Lisp_Object Qbar, Qhbar, Qbox, Qhollow;
  Lisp_Object Qborder_color;
  Lisp_Object Qborder_width;
  Lisp_Object Qbox;
***************
*** 1873,1883 ****
      }
    else if (NILP (arg))
      type = NO_CURSOR;
    else
!     /* Treat anything unknown as "box cursor".
         It was bad to signal an error; people have trouble fixing
         .Xdefaults with Emacs, when it has something bad in it.  */
!     type = FILLED_BOX_CURSOR;
  
    return type;
  }
--- 1876,1888 ----
      }
    else if (NILP (arg))
      type = NO_CURSOR;
+   else if (EQ (arg, Qbox))
+     type = FILLED_BOX_CURSOR;
    else
!     /* Treat anything unknown as "hollow box cursor".
         It was bad to signal an error; people have trouble fixing
         .Xdefaults with Emacs, when it has something bad in it.  */
!     type = HOLLOW_BOX_CURSOR;
  
    return type;
  }
***************
*** 1888,1899 ****
--- 1893,1925 ----
       Lisp_Object arg, oldval;
  {
    int width;
+   Lisp_Object tem;
    
    FRAME_DESIRED_CURSOR (f) = x_specified_cursor_type (arg, &width);
    f->output_data.x->cursor_width = width;
  
    /* Make sure the cursor gets redrawn.  */
    cursor_type_changed = 1;
+ 
+   /* By default, set up the blink-off state depending on the on-state.  */
+ 
+   if (FRAME_DESIRED_CURSOR (f) == FILLED_BOX_CURSOR)
+     FRAME_BLINK_OFF_CURSOR (f) = HOLLOW_BOX_CURSOR;
+   else if (FRAME_DESIRED_CURSOR (f) == BAR_CURSOR && FRAME_CURSOR_WIDTH (f) > 
1)
+     {
+       FRAME_BLINK_OFF_CURSOR (f) = BAR_CURSOR;
+       FRAME_BLINK_OFF_CURSOR_WIDTH (f) = 1;
+     }
+   else
+     FRAME_BLINK_OFF_CURSOR (f) = NO_CURSOR;
+ 
+   tem = Fassoc (arg, Vblink_cursor_alist);
+   if (!NILP (tem))
+     {
+       FRAME_BLINK_OFF_CURSOR (f)
+       = x_specified_cursor_type (XCDR (tem), &width);
+       f->output_data.x->blink_off_cursor_width = width;
+     }
  }
  
  void
***************
*** 11844,11849 ****
--- 11870,11879 ----
    staticpro (&Qbar);
    Qhbar = intern ("hbar");
    staticpro (&Qhbar);
+   Qbox = intern ("box");
+   staticpro (&Qbox);
+   Qhollow = intern ("hollow");
+   staticpro (&Qhollow);
    Qborder_color = intern ("border-color");
    staticpro (&Qborder_color);
    Qborder_width = intern ("border-width");
***************
*** 11953,11958 ****
--- 11983,11996 ----
        build_string ("Undefined color"));
  
    init_x_parm_symbols ();
+ 
+   DEFVAR_LISP ("blink-cursor-alist", &Vblink_cursor_alist,
+     doc: /* Alist specifying how to blink the cursor off.
+ Each element has the form (ON-STATE . OFF-STATE).  Whenever the
+ `cursor-type' frame-parameter or variable equals ON-STATE,
+ comparing using `equal', Emacs uses OFF-STATE to specify
+ how to blink it off.  */);
+   Vblink_cursor_alist = Qnil;
  
    DEFVAR_BOOL ("cross-disabled-images", &cross_disabled_images,
      doc: /* Non-nil means always draw a cross over disabled images.




reply via email to

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