(read_avail_input): Change buf to pinter to read_avail_input_buf.
Use in_read_avail_input to handle re-entrance; when re-entered,
fully initialize and use tmp_buf array instead of read_avail_input_buf.
buf array was allocated on the stack.
(prev_read): Remove variable.
(read_avail_input_buf): New static event buffer array.
(in_read_avail_input): New static variable to avoid re-entrancy.
(read_avail_input): Change buf to pinter to read_avail_input_buf.
Use in_read_avail_input to guard against re-entry.
Do not initialize read_avail_input_buf here; instead assume it
is always cleared on entry. To ensure that, we clear (just) the
entries that were used before we return.
(init_keyboard): Initialize read_avail_input_buf here.
controlling emulation of a three button mouse with option and
command keys.
(Qreverse, mac_get_enumlated_btn): Handle the emulation
(mac_event_to_emacs_modifiers, XTread_socket): Ditto
short to facilitate 16 bits wide bitmaps. Modify all standard
bitmaps accordingly.
(BYTES_PER_BITMAP_ROW, STANDARD_BITMAP_HEIGHT): New macros.
(FRBITS): Use STANDARD_BITMAP_HEIGHT instead of just sizeof.
(draw_fringe_bitmap): Ditto.
(init_fringe_bitmap) [MAC_OS]: Don't bitswap.
(init_fringe_bitmap) [HAVE_X_WINDOWS]: Enhance bitswapping to
handle up to 16 bits wide bitmaps.
(Fdefine_fringe_bitmap): Doc fix. Handle wider bitmaps.
(x_draw_fringe_bitmap): Handle overlayed fringe bitmaps;
thanks to YAMAMOTO Mitsuharu for advice on how to do this.
Use cursor color for displaying cursor in fringe.
Use cursor color for displaying cursor in fringe.
(x_redisplay_interface): Add null handlers for
define_fringe_bitmap and destroy_fringe_bitmap functions.
(left_bits, right_bits, up_arrow_bits, down_arrow_bits)
(continued_bits, continuation_bits, ov_bits, first_line_bits)
(last_line_bits, filled_box_cursor_bits, hollow_box_cursor_bits)
(bar_cursor_bits, hbar_cursor_bits, zv_bits, hollow_square_bits)
(fringe_bitmaps, draw_fringe_bitmap, draw_row_fringe_bitmaps)
(draw_window_fringes, compute_fringe_widths, update_window_fringes):
Move fringe handling vars and code to new file fringe.c.
(handle_display_prop): Handle left-fringe and right-fringe
display properties; store user fringe bitmaps in iterator.
(move_it_in_display_line_to): Handle cursor in fringe at eob.
(clear_garbaged_frames): Set force_flush_display_p if resized.
(redisplay_window): Redraw fringe bitmaps if not just_this_one_p.
(display_line): Handle cursor in fringe at eob.
(display_line): Set row user fringe bitmaps from iterator.
xterm.c to handle overlayed fringe bitmaps and to use cursor color
for displaying cursor in fringe.
(w32_define_fringe_bitmap, w32_destroy_fringe_bitmap): New W32
specific functions to define and destroy fringe bitmaps in fringe_bmp.
(w32_redisplay_interface): Add them to redisplay_interface.
(w32_term_init): Call w32_init_fringe instead of explicitly
defining fringe bitmaps in fringe_bmp array.
(x_delete_display): Call w32_reset_fringes instead of explicitly
destroying fringe bitmaps in fringe_bmp array.
xterm.c to handle overlayed fringe bitmaps and to use cursor color
for displaying cursor in fringe.
(x_redisplay_interface): Add null handlers for
define_fringe_bitmap and destroy_fringe_bitmap functions.
arrows.
(update_frame): Do flush_display if force_flush_display_p to
ensure display (specifically fringes) are updated in a timely
manner when resizing the frame by dragging the mouse.
(update_window_line): Update row if overlay arrow changed.
(scrolling_window): Redraw fringe bitmaps if fringe bitmap faces
or overlay arrow changed.
bits allocated to hold a fringe number. Increase number of bits
from 4 to 8 to allow user defined fringe bitmaps.
(struct glyph_row, struct it): New members left_user_fringe_bitmap,
left_user_fringe_face_id, right_user_fringe_bitmap,
right_user_fringe_face_id.
(enum fringe_bitmap_type, struct fringe_bitmap, fringe_bitmaps):
Move to new file fringe.c.
(MAX_FRINGE_BITMAPS): Define here.
(struct draw_fringe_bitmap_params): New members bits, cursor_p,
and overlay_p. Change member which to int.
(struct redisplay_interface): New members define_fringe_bitmap
and destroy_fringe_bitmap.
(valid_fringe_bitmap_id_p): Add prototype.
(w32_init_fringe, w32_reset_fringes) [WINDOWS_NT]: Add prototypes.
and code from dispextern.h and xdisp.c here.
Rework code to support user defined fringe bitmaps, redefining
standard bitmaps, ability to overlay user defined bitmap with
overlay arrow bitmap, and add faces to bitmaps.
(Voverflow_newline_into_fringe): Declare here.
(enum fringe_bitmap_align): New enum.
(..._bits): All bitmaps are now defined without bitswapping; that
is now done in init_fringe_once (if necessary).
(standard_bitmaps): New array with specifications for the
standard fringe bitmaps.
(fringe_faces): New array.
(valid_fringe_bitmap_id_p): New function.
(draw_fringe_bitmap_1): Rename from draw_fringe_bitmap.
(draw_fringe_bitmap): New function which draws fringe bitmap,
possibly overlaying bitmap with cursor in right fringe or the
overlay arrow in the left fringe.
(update_window_fringes): Do not handle overlay arrow here.
Compare and copy fringe bitmap faces.
(init_fringe_bitmap): New function.
(Fdefine_fringe_bitmap, Fdestroy_fringe_bitmap): New DEFUNs to
define and destroy user defined fringe bitmaps.
(Fset_fringe_bitmap_face): New DEFUN to set face for a fringe bitmap.
(Ffringe_bitmaps_at_pos): New DEFUN to read current fringe bitmaps.
(syms_of_fringe): New function. Defsubr new DEFUNs.
DEFVAR_LISP Voverflow_newline_into_fringe.
(init_fringe_once, init_fringe): New functions.
(w32_init_fringe, w32_reset_fringes) [WINDOWS_NT]: New functions.