1. 14 Jan, 1993 15 commits
    • Jim Blandy's avatar
      * termhooks.h (mouse_position_hook): Doc fix. · ec3f896c
      Jim Blandy authored
      	(set_vertical_scrollbar_hook): This doesn't return anything any
      	more, and doesn't take a struct scrollbar * argument any more.
      	(condemn_scrollbars_hook, redeem_scrollbar_hook,
      	judge_scrollbars_hook): Doc fixes.
      	* term.c (mouse_position_hook): Doc fix.
      	(set_vertical_scrollbar_hook): This doesn't return
      	anything any more.  Doc fixes.
      	* keyboard.c (kbd_buffer_get_event): Receive the scrollbar's
      	window from *mouse_position_hook and pass it to
      	make_lispy_movement, instead of working with a pointer to a struct
      	scrollbar.
      	(make_lispy_event): We don't need a window_from_scrollbar function
      	anymore; we are given the window directly in *EVENT.
      	Unify the code which generates
      	text-area mouse clicks and scrollbar clicks; use the same code to
      	distinguish clicks from drags on the scrollbar as in the text area.
      	Distinguish clicks from drags by storing a copy of the lispy
      	position list returned as part of the event.
      	(button_down_location): Make this a lisp vector, rather than an
      	array of random structures.
      	(struct mouse_position): Remove this; it's been replaced by a lisp
      	list.
      	(make_lispy_movement): Accept the scrollbar's window as a
      	parameter, rather than the scrollbar itself.
      	If FRAME is zero, assume that the other arguments are garbage.
      	(syms_of_keyboard): No need to staticpro each window of
      	button_down_location now; just initialize and staticpro it.
      	* window.c (window_from_scrollbar): Function deleted; no longer
      	needed.
      	* xdisp.c (redisplay_window): Just pass the window to
      	set_vertical_scrollbar hook; don't pass the scrollbar object too.
      	* xterm.c (XTmouse_position): Don't return a pointer to the
      	scrollbar for scrollbar motion; instead, return the scrollbar's
      	window.
      
      	* termhooks.h (struct input_event): Replace the frame member with
      	a Lisp_Object member by the name of frame_or_window.  Doc fixes.
      	Remove the scrollbar member; instead, use frame_or_window to hold the
      	window whose scrollbar was clicked.
      	* keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event,
      	make_lispy_event): Adjust references to frame member of struct
      	input_event to use frame_or_window now.
      	* xterm.c (construct_mouse_click, XTread_socket): Same.
      ec3f896c
    • Jim Blandy's avatar
      * term.c (set_vertical_scrollbar_hook, condemn_scrollbars_hook, · 371fbaeb
      Jim Blandy authored
      	redeem_scrollbar_hook, judge_scrollbars_hook): Removed dumbo
      	"externs" from these.  They're supposed to be real definitions.
      
      	* termhooks.h (mouse_position_hook): Doc fix.
      	(set_vertical_scrollbar_hook): This doesn't return anything any
      	more, and doesn't take a struct scrollbar * argument any more.
      	(condemn_scrollbars_hook, redeem_scrollbar_hook,
      	judge_scrollbars_hook): Doc fixes.
      	* term.c (mouse_position_hook): Doc fix.
      	(set_vertical_scrollbar_hook): This doesn't return
      	anything any more.  Doc fixes.
      	* keyboard.c (kbd_buffer_get_event): Receive the scrollbar's
      	window from *mouse_position_hook and pass it to
      	make_lispy_movement, instead of working with a pointer to a struct
      	scrollbar.
      	(make_lispy_event): We don't need a window_from_scrollbar function
      	anymore; we are given the window directly in *EVENT.
      	Unify the code which generates
      	text-area mouse clicks and scrollbar clicks; use the same code to
      	distinguish clicks from drags on the scrollbar as in the text area.
      	Distinguish clicks from drags by storing a copy of the lispy
      	position list returned as part of the event.
      	(button_down_location): Make this a lisp vector, rather than an
      	array of random structures.
      	(struct mouse_position): Remove this; it's been replaced by a lisp
      	list.
      	(make_lispy_movement): Accept the scrollbar's window as a
      	parameter, rather than the scrollbar itself.
      	If FRAME is zero, assume that the other arguments are garbage.
      	(syms_of_keyboard): No need to staticpro each window of
      	button_down_location now; just initialize and staticpro it.
      	* window.c (window_from_scrollbar): Function deleted; no longer
      	needed.
      	* xdisp.c (redisplay_window): Just pass the window to
      	set_vertical_scrollbar hook; don't pass the scrollbar object too.
      	* xterm.c (XTmouse_position): Don't return a pointer to the
      	scrollbar for scrollbar motion; instead, return the scrollbar's
      	window.
      371fbaeb
    • Jim Blandy's avatar
      * frame.h (FRAME_SAMPLE_VISIBILITY): Make sure frame is marked as · 1dc77cc3
      Jim Blandy authored
      	garbaged whenever it goes from invisible to visible.
      	* dispextern.h (frame_garbaged): Move extern declaration from here...
      	* frame.h (frame_garbaged): ... to here.  The FRAME_SAMPLE_VISIBILITY
      	macro uses it now, and this seems to be just as modular.  Make a
      	new page, just for this and message_buf_print.
      	(struct frame): Doc fix for the `visible' field.
      	* process.c: #include "frame.h" instead of "dispextern.h"; the
      	only thing we care about from it is the frame_garbaged
      	declaration.
      	* ymakefile: Note dependency change.
      1dc77cc3
    • Jim Blandy's avatar
      * window.c (window_internal_width): New function. · 02213e82
      Jim Blandy authored
      	* lisp.h (window_internal_height, window_internal_width): Add
      	extern declarations for these.
      	* dispnew.c (direct_output_for_insert, direct_output_forward_char,
      	buffer_posn_from_coords): Use window_internal_width instead of
      	writing out its definition.
      	* indent.c (compute_motion): Doc fix; mention scrollbars and
      	window_internal_width.
      	(pos_tab_offset, Fvertical_motion): Use window_internal_width
      	instead of writing it out.
      	* window.c (Fpos_visible_in_window_p, Fwindow_width, Fscroll_left,
      	Fscroll_right): Same.
      	* xdisp.c (redisplay, try_window, try_window_id,
      	display_text_line): Same.
      
      	* emacs.c (shut_down_emacs): New function.
      	(fatal_error_signal, Fkill_emacs): Call it, instead of writing it out.
      	* xterm.c (x_connection_closed): Call shut_down_emacs instead of
      	Fkill_emacs; the latter will try to perform operations on the X
      	server and die a horrible death.
      	* lisp.h (shut_down_emacs): Add extern declaration for it.
      02213e82
    • Jim Blandy's avatar
      * termhooks.h (mouse_position_hook): Doc fix. · 7b4aedb9
      Jim Blandy authored
      	(set_vertical_scrollbar_hook): This doesn't return anything any
      	more, and doesn't take a struct scrollbar * argument any more.
      	(condemn_scrollbars_hook, redeem_scrollbar_hook,
      	judge_scrollbars_hook): Doc fixes.
      	* term.c (mouse_position_hook): Doc fix.
      	(set_vertical_scrollbar_hook): This doesn't return
      	anything any more.  Doc fixes.
      	* keyboard.c (kbd_buffer_get_event): Receive the scrollbar's
      	window from *mouse_position_hook and pass it to
      	make_lispy_movement, instead of working with a pointer to a struct
      	scrollbar.
      	(make_lispy_event): We don't need a window_from_scrollbar function
      	anymore; we are given the window directly in *EVENT.
      	Unify the code which generates
      	text-area mouse clicks and scrollbar clicks; use the same code to
      	distinguish clicks from drags on the scrollbar as in the text area.
      	Distinguish clicks from drags by storing a copy of the lispy
      	position list returned as part of the event.
      	(button_down_location): Make this a lisp vector, rather than an
      	array of random structures.
      	(struct mouse_position): Remove this; it's been replaced by a lisp
      	list.
      	(make_lispy_movement): Accept the scrollbar's window as a
      	parameter, rather than the scrollbar itself.
      	If FRAME is zero, assume that the other arguments are garbage.
      	(syms_of_keyboard): No need to staticpro each window of
      	button_down_location now; just initialize and staticpro it.
      	* window.c (window_from_scrollbar): Function deleted; no longer
      	needed.
      	* xdisp.c (redisplay_window): Just pass the window to
      	set_vertical_scrollbar hook; don't pass the scrollbar object too.
      	* xterm.c (XTmouse_position): Don't return a pointer to the
      	scrollbar for scrollbar motion; instead, return the scrollbar's
      	window.
      
      	* keyboard.c (apply_modifiers): Don't assume that the Qevent_kind
      	property of BASE is set when we first create the new modified
      	symbol.  Check that the Qevent_kind property is properly set each
      	time we return any symbol.
      
      	* termhooks.h (struct input_event): Replace the frame member with
      	a Lisp_Object member by the name of frame_or_window.  Doc fixes.
      	Remove the scrollbar member; instead, use frame_or_window to hold the
      	window whose scrollbar was clicked.
      	* keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event,
      	make_lispy_event): Adjust references to frame member of struct
      	input_event to use frame_or_window now.
      	* xterm.c (construct_mouse_click, XTread_socket): Same.
      
      	* keyboard.c (kbd_buffer_frames): Renamed to
      	kbd_buffer_frame_or_window, and made to exist even when
      	MULTI_FRAME isn't defined; single-frame systems might have
      	scrollbars.  Use it to GCPRO the frame_or_window field in the
      	event queue.
      	(kbd_buffer_store_event, kbd_buffer_get_event,
      	stuff_buffered_input): Set and clear the
      	appropriate element of kbd_buffer_frame_or_window, whether or not
      	MULTI_FRAME is #defined.
      	(read_avail_input): When reading characters directly from stdin,
      	set the frame_or_window field of the event appropriately,
      	depending on whether or not MULTI_FRAME is #defined.
      	(Fdiscard_input, init_keyboard): Zap kbd_buffer_frame_or_window,
      	not kbd_buffer_frames.
      	(syms_of_keyboard): Initialize and staticpro
      	kbd_buffer_frame_or_window, whether or not MULTI_FRAME is
      	#defined.
      
      	* keyboard.c (head_table): Make Qscrollbar_movement have a
      	Qevent_kind property of Qmouse_movement, not Qscrollbar_movement.
      
      	* keyboard.c (read_key_sequence): If we decide to throw away a
      	mouse event which has prefix symbols (`mode-line',
      	`vertical-scrollbar', etcetera), remember that we may have to
      	unwind two characters, not just one.
      
      	* keyboard.c (read_key_sequence): Doc fixes.
      
      	* keyboard.c (kbd_buffer_store_event): Fix reversed sense of test
      	for focus redirection.
      
      	* keyboard.c (read_char): Don't echo mouse movements.
      7b4aedb9
    • Jim Blandy's avatar
      * window.c (window_internal_width): New function. · fa61c701
      Jim Blandy authored
      	* lisp.h (window_internal_height, window_internal_width): Add
      	extern declarations for these.
      	* dispnew.c (direct_output_for_insert, direct_output_forward_char,
      	buffer_posn_from_coords): Use window_internal_width instead of
      	writing out its definition.
      	* indent.c (compute_motion): Doc fix; mention scrollbars and
      	window_internal_width.
      	(pos_tab_offset, Fvertical_motion): Use window_internal_width
      	instead of writing it out.
      	* window.c (Fpos_visible_in_window_p, Fwindow_width, Fscroll_left,
      	Fscroll_right): Same.
      	* xdisp.c (redisplay, try_window, try_window_id,
      	display_text_line): Same.
      fa61c701
    • Jim Blandy's avatar
      Make scrollbar structures into lisp objects, so that they can be · 20a6c8d7
      Jim Blandy authored
      	GC'd; this allows windows and scrollbars can refer to each other
      	without worrying about dangling pointers.
      	* xterm.h (struct x_display): vertical_scrollbars and
      	judge_timestamp members deleted.
      	(struct scrollbar): Redesigned to be a template for a Lisp_Vector.
      	(SCROLLBAR_VEC_SIZE, XSCROLLBAR, SCROLLBAR_PACK, SCROLLBAR_UNPACK,
      	SCROLLBAR_X_WINDOW, SET_SCROLLBAR_X_WINDOW,
      	VERTICAL_SCROLLBAR_INSIDE_WIDTH, VERTICAL_SCROLLBAR_TOP_RANGE,
      	VERTICAL_SCROLLBAR_INSIDE_HEIGHT, VERTICAL_SCROLLBAR_MIN_HANDLE):
      	New macros, to help deal with the lispy structures, and deal with
      	the graphics.
      	* frame.h (WINDOW_VERTICAL_SCROLLBAR): Macro deleted.
      	(struct frame): New fields `scrollbars' and
      	`condemned_scrollbars', for use by the scrollbar implementation.
      	[MULTI_FRAME and not MULTI_FRAME] (FRAME_SCROLLBARS,
      	FRAME_CONDEMNED_SCROLLBARS): Accessors for the new field.
      	* window.h (struct window): Doc fix for vertical_scrollbar field.
      	* frame.c (make_frame): Initialize the `scrollbars' and
      	`condemned_scrollbars' fields of the new frame.
      	* alloc.c (mark_object): Mark the `scrollbars' and
      	`condemned_scrollbars' slots of frames.
      	* xterm.c (x_window_to_scrollbar): Scrollbars are chained on
      	frames' scrollbar field, not their x.display->vertical_scrollbars
      	field.
      	(x_scrollbar_create, x_scrollbar_set_handle, x_scrollbar_move,
      	x_scrollbar_remove, XTset_vertical_scrollbar,
      	XTcondemn_scrollbars, XTredeem_scrollbar, XTjudge_scrollbars,
      	x_scrollbar_expose, x_scrollbar_handle_click,
      	x_scrollbar_handle_motion): Substantially rewritten to correct
      	typos and brainos, and to accomodate the lispy structures.
      
      	* frame.h (FRAME_SAMPLE_VISIBILITY): Make sure frame is marked as
      	garbaged whenever it goes from invisible to visible.
      	* dispextern.h (frame_garbaged): Move extern declaration from here...
      	* frame.h (frame_garbaged): ... to here.  The FRAME_SAMPLE_VISIBILITY
      	macro uses it now, and this seems to be just as modular.  Make a
      	new page, just for this and message_buf_print.
      	(struct frame): Doc fix for the `visible' field.
      	* process.c: #include "frame.h" instead of "dispextern.h"; the
      	only thing we care about from it is the frame_garbaged
      	declaration.
      	* ymakefile: Note dependency change.
      20a6c8d7
    • Jim Blandy's avatar
      * fileio.c (Fdo_auto_save): Add CURRENT_ONLY argument, as · 17857782
      Jim Blandy authored
      	described in doc string.
      17857782
    • Jim Blandy's avatar
      * emacs.c (shut_down_emacs): New function. · 40be253a
      Jim Blandy authored
      	(fatal_error_signal, Fkill_emacs): Call it, instead of writing it out.
      	* xterm.c (x_connection_closed): Call shut_down_emacs instead of
      	Fkill_emacs; the latter will try to perform operations on the X
      	server and die a horrible death.
      	* lisp.h (shut_down_emacs): Add extern declaration for it.
      40be253a
    • Jim Blandy's avatar
      * config.h.in: protect against multiple #inclusions. · 7e1fc708
      Jim Blandy authored
      	* config.h.in: Add a declaration for getenv.
      7e1fc708
    • Jim Blandy's avatar
      * scrollbar.el: New file. · 6d62a90e
      Jim Blandy authored
      	* term/x-win.el: Require 'scrollbar.
      6d62a90e
    • Jim Blandy's avatar
    • Jim Blandy's avatar
    • Jim Blandy's avatar
      * frame.el (frame-notice-user-settings): Don't try to delete the · faa3b11d
      Jim Blandy authored
      	initial frame if the user took care of that.
      faa3b11d
    • Jim Blandy's avatar
      Initial revision · 396890d1
      Jim Blandy authored
      396890d1
  2. 13 Jan, 1993 4 commits
  3. 12 Jan, 1993 2 commits
  4. 11 Jan, 1993 2 commits
  5. 10 Jan, 1993 2 commits
  6. 09 Jan, 1993 4 commits
  7. 08 Jan, 1993 11 commits