[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Emacs-diffs] Changes to emacs/src/xdisp.c
From: |
Kim F . Storm |
Subject: |
[Emacs-diffs] Changes to emacs/src/xdisp.c |
Date: |
Mon, 18 Apr 2005 10:10:11 -0400 |
Index: emacs/src/xdisp.c
diff -c emacs/src/xdisp.c:1.998 emacs/src/xdisp.c:1.999
*** emacs/src/xdisp.c:1.998 Sat Apr 16 18:19:26 2005
--- emacs/src/xdisp.c Mon Apr 18 14:10:09 2005
***************
*** 9643,9664 ****
static Lisp_Object
! overlay_arrow_string_or_property (var, pbitmap)
Lisp_Object var;
- int *pbitmap;
{
! Lisp_Object pstr = Fget (var, Qoverlay_arrow_string);
! Lisp_Object bitmap;
! if (pbitmap)
! {
! *pbitmap = 0;
! if (bitmap = Fget (var, Qoverlay_arrow_bitmap), INTEGERP (bitmap))
! *pbitmap = XINT (bitmap);
! }
- if (!NILP (pstr))
- return pstr;
return Voverlay_arrow_string;
}
--- 9643,9656 ----
static Lisp_Object
! overlay_arrow_string_or_property (var)
Lisp_Object var;
{
! Lisp_Object val;
! if (val = Fget (var, Qoverlay_arrow_string), STRINGP (val))
! return val;
return Voverlay_arrow_string;
}
***************
*** 9708,9714 ****
continue;
if (! EQ (COERCE_MARKER (val),
Fget (var, Qlast_arrow_position))
! || ! (pstr = overlay_arrow_string_or_property (var, 0),
EQ (pstr, Fget (var, Qlast_arrow_string))))
return 1;
}
--- 9700,9706 ----
continue;
if (! EQ (COERCE_MARKER (val),
Fget (var, Qlast_arrow_position))
! || ! (pstr = overlay_arrow_string_or_property (var),
EQ (pstr, Fget (var, Qlast_arrow_string))))
return 1;
}
***************
*** 9738,9744 ****
Fput (var, Qlast_arrow_position,
COERCE_MARKER (val));
Fput (var, Qlast_arrow_string,
! overlay_arrow_string_or_property (var, 0));
}
else if (up_to_date < 0
|| !NILP (Fget (var, Qlast_arrow_position)))
--- 9730,9736 ----
Fput (var, Qlast_arrow_position,
COERCE_MARKER (val));
Fput (var, Qlast_arrow_string,
! overlay_arrow_string_or_property (var));
}
else if (up_to_date < 0
|| !NILP (Fget (var, Qlast_arrow_position)))
***************
*** 9751,9764 ****
/* Return overlay arrow string to display at row.
! Return t if display as bitmap in left fringe.
Return nil if no overlay arrow. */
static Lisp_Object
! overlay_arrow_at_row (it, row, pbitmap)
struct it *it;
struct glyph_row *row;
- int *pbitmap;
{
Lisp_Object vlist;
--- 9743,9755 ----
/* Return overlay arrow string to display at row.
! Return integer (bitmap number) for arrow bitmap in left fringe.
Return nil if no overlay arrow. */
static Lisp_Object
! overlay_arrow_at_row (it, row)
struct it *it;
struct glyph_row *row;
{
Lisp_Object vlist;
***************
*** 9778,9794 ****
&& current_buffer == XMARKER (val)->buffer
&& (MATRIX_ROW_START_CHARPOS (row) == marker_position (val)))
{
- val = overlay_arrow_string_or_property (var, pbitmap);
if (FRAME_WINDOW_P (it->f)
&& WINDOW_LEFT_FRINGE_WIDTH (it->w) > 0)
! return Qt;
! if (STRINGP (val))
! return val;
! break;
}
}
- *pbitmap = 0;
return Qnil;
}
--- 9769,9789 ----
&& current_buffer == XMARKER (val)->buffer
&& (MATRIX_ROW_START_CHARPOS (row) == marker_position (val)))
{
if (FRAME_WINDOW_P (it->f)
&& WINDOW_LEFT_FRINGE_WIDTH (it->w) > 0)
! {
! if (val = Fget (var, Qoverlay_arrow_bitmap), SYMBOLP (val))
! {
! int fringe_bitmap;
! if ((fringe_bitmap = lookup_fringe_bitmap (val)) != 0)
! return make_number (fringe_bitmap);
! }
! return make_number (-1); /* Use default arrow bitmap */
! }
! return overlay_arrow_string_or_property (var);
}
}
return Qnil;
}
***************
*** 14846,14852 ****
struct it *it;
{
struct glyph_row *row = it->glyph_row;
- int overlay_arrow_bitmap;
Lisp_Object overlay_arrow_string;
/* We always start displaying at hpos zero even if hscrolled. */
--- 14841,14846 ----
***************
*** 15254,15262 ****
mark this glyph row as the one containing the overlay arrow.
This is clearly a mess with variable size fonts. It would be
better to let it be displayed like cursors under X. */
! if ((overlay_arrow_string
! = overlay_arrow_at_row (it, row, &overlay_arrow_bitmap),
! !NILP (overlay_arrow_string)))
{
/* Overlay arrow in window redisplay is a fringe bitmap. */
if (STRINGP (overlay_arrow_string))
--- 15248,15256 ----
mark this glyph row as the one containing the overlay arrow.
This is clearly a mess with variable size fonts. It would be
better to let it be displayed like cursors under X. */
! if ((row->displays_text_p || !overlay_arrow_seen)
! && (overlay_arrow_string = overlay_arrow_at_row (it, row),
! !NILP (overlay_arrow_string)))
{
/* Overlay arrow in window redisplay is a fringe bitmap. */
if (STRINGP (overlay_arrow_string))
***************
*** 15286,15293 ****
}
else
{
! it->w->overlay_arrow_bitmap = overlay_arrow_bitmap;
! row->overlay_arrow_p = 1;
}
overlay_arrow_seen = 1;
}
--- 15280,15287 ----
}
else
{
! xassert (INTEGERP (overlay_arrow_string));
! row->overlay_arrow_bitmap = XINT (overlay_arrow_string);
}
overlay_arrow_seen = 1;
}
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2005/04/08
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Richard M . Stallman, 2005/04/16
- [Emacs-diffs] Changes to emacs/src/xdisp.c,
Kim F . Storm <=
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2005/04/19
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2005/04/19
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Miles Bader, 2005/04/21
- [Emacs-diffs] Changes to emacs/src/xdisp.c, Kim F . Storm, 2005/04/21