mirror of
git://git.sv.gnu.org/emacs.git
synced 2025-12-28 16:21:07 -08:00
(x_set_cursor_type): Set FRAME_BLINK_OFF_CURSOR and
FRAME_BLINK_OFF_CURSOR_WIDTH using defaults and Vblink_cursor_alist. (Vblink_cursor_alist): New variable. (syms_of_w32fns): Initialize and defvar it. (x_specified_cursor_type): Recognize Qbox for filled box. Exceptions are hollow boxes. (Qbox, Qhollow): New variables. (syms_of_w32fns): Initialize and staticpro them.
This commit is contained in:
parent
e1fa392b30
commit
dcd8d1edfe
1 changed files with 42 additions and 4 deletions
46
src/w32fns.c
46
src/w32fns.c
|
|
@ -202,9 +202,12 @@ Lisp_Object Vw32_charset_info_alist;
|
|||
#define VIETNAMESE_CHARSET 163
|
||||
#endif
|
||||
|
||||
/* How to blink the cursor off. */
|
||||
Lisp_Object Vblink_cursor_alist;
|
||||
|
||||
Lisp_Object Qauto_raise;
|
||||
Lisp_Object Qauto_lower;
|
||||
Lisp_Object Qbar, Qhbar;
|
||||
Lisp_Object Qbar, Qhbar, Qbox, Qhollow;
|
||||
Lisp_Object Qborder_color;
|
||||
Lisp_Object Qborder_width;
|
||||
Lisp_Object Qbox;
|
||||
|
|
@ -2386,11 +2389,13 @@ x_specified_cursor_type (arg, width)
|
|||
}
|
||||
else if (NILP (arg))
|
||||
type = NO_CURSOR;
|
||||
else if (EQ (arg, Qbox))
|
||||
type = FILLED_BOX_CURSOR;
|
||||
else
|
||||
/* Treat anything unknown as "box cursor".
|
||||
/* 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 = FILLED_BOX_CURSOR;
|
||||
type = HOLLOW_BOX_CURSOR;
|
||||
|
||||
return type;
|
||||
}
|
||||
|
|
@ -2401,13 +2406,34 @@ x_set_cursor_type (f, arg, oldval)
|
|||
Lisp_Object arg, oldval;
|
||||
{
|
||||
int width;
|
||||
|
||||
Lisp_Object tem;
|
||||
|
||||
FRAME_DESIRED_CURSOR (f) = x_specified_cursor_type (arg, &width);
|
||||
f->output_data.w32->cursor_width = width;
|
||||
|
||||
/* Make sure the cursor gets redrawn. This is overkill, but how
|
||||
often do people change cursor types? */
|
||||
update_mode_lines++;
|
||||
|
||||
/* 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.w32->blink_off_cursor_width = width;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
|
|
@ -14870,6 +14896,10 @@ syms_of_w32fns ()
|
|||
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");
|
||||
|
|
@ -15110,6 +15140,14 @@ system to handle them. */);
|
|||
|
||||
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_LISP ("x-bitmap-file-path", &Vx_bitmap_file_path,
|
||||
doc: /* List of directories to search for bitmap files for w32. */);
|
||||
Vx_bitmap_file_path = decode_env_path ((char *) 0, "PATH");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue