1. 22 May, 1993 2 commits
  2. 20 May, 1993 1 commit
  3. 19 May, 1993 2 commits
  4. 16 May, 1993 1 commit
  5. 14 May, 1993 1 commit
    • Jim Blandy's avatar
      * xterm.c (dumpglyphs): Give the cursor higher priority than the · 4a4dc352
      Jim Blandy authored
      	face specified by the glyph under it.
      
      	* xterm.c (dumpglyphs): Move the underline up a row.  I dislike
      	the way X addresses pixels.  Quickdraw is much nicer.
      
      	* xterm.c (dumpglyphs): Pass the proper arguments to intern_face.
      
      	* xterm.c (dumpglyphs): Don't increment left twice.
      4a4dc352
  6. 10 May, 1993 1 commit
    • Jim Blandy's avatar
      * xdisp.c (display_text_line): Apply faces to characters · 07e34cb0
      Jim Blandy authored
      	according to overlays and text properties; use
      	compute_char_face and compute_glyph_face to figure out what
      	face to use, and where a new face starts.
      	* xterm.c (dumpglyphs): Use the upper bits of the glyphs to decide
      	which frame face to use.  Call GLYPH_FOLLOW_ALIASES to make sure
      	we're implementing the glyph table properly.  If we're not using
      	the default or mode line face, call intern_face to find a display
      	face for the frame face selected by the glyph code.  Implement
      	underlining.  Remove the `font' argument; we have to derive this
      	from the frame and face anyway.  Change all callers.
      	* disptab.h (GLYPH_FOLLOW_ALIASES): New macro.
      
      	* xterm.c (x_destroy_window): Call free_frame_faces.
      07e34cb0
  7. 04 May, 1993 1 commit
    • Jim Blandy's avatar
      Implement extra_keyboard_modifiers properly. · dfeccd2d
      Jim Blandy authored
      	* keyboard.c (syms_of_keyboard): Doc fix for
      	extra-keyboard-modifiers; use the same modifier bits as we do for
      	characters.
      	(read_char): Apply all the modifiers in extra_keyboard_modifiers
      	to the input characters, so you can get hyper, super, and the rest
      	of the gang.
      	* xterm.c (x_emacs_to_x_modifiers): New function.
      	(x_convert_modifiers): Renamed to x_x_to_emacs_modifiers, for
      	consistency.  Callers changed.
      	(XTread_socket): Apply x_emacs_to_x_modifiers to
      	extra_keyboard_modifiers before setting the state member of the
      	event; this will get all the modifiers on ASCII characters.
      
      	* xterm.c (x_text_icon): Don't call XSetIconName; it should be
      	unnecessary, and perhaps it's killing the icon pixmap.
      dfeccd2d
  8. 07 Apr, 1993 2 commits
  9. 31 Mar, 1993 1 commit
    • Jim Blandy's avatar
      Put interrupt input blocking in a separate file from xterm.h. · 9ac0d9e0
      Jim Blandy authored
      	This isn't specific to X, and it allows us to avoid #including
      	xterm.h in files that don't really have anything to do with X.
      	* blockinput.h: New file.
      	* xterm.h (BLOCK_INPUT, UNBLOCK_INPUT, TOTALLY_UNBLOCK_INPUT,
      	UNBLOCK_INPUT_RESIGNAL): These are now in blockinput.h.
      	(x_input_blocked, x_pending_input): Deleted; there are analogs
      	in blockinput.h called interrupt_input_blocked and
      	interrupt_input_pending.
      	* keyboard.c (interrupt_input_blocked, interrupt_input_pending):
      	New variables, used by the macros in blockinput.h.
      	* xterm.c: #include blockinput.h.
      	(x_input_blocked, x_pending_input): Deleted.
      	(XTread_socket): Test and set interrupt_input_blocked and
      	interrupt_input_pending instead of the old variables.
      	* alloc.c, xfaces.c, xfns.c, xmenu.c, xselect.c, keymap.c:
      	#include blockinput.h.
      	* eval.c: #include blockinput.h instead of xterm.h.
      	* keyboard.c: #include blockinput.h.
      	(input_poll_signal): Just test
      	interrupt_input_blocked, instead of testing HAVE_X_WINDOWS and
      	x_input_blocked.
      
      	Block the processing of interrupt input while we're manipulating the
      	malloc heap.
      	* alloc.c: (xfree): New function, to make it easy to free things
      	safely.
      	(xmalloc, xrealloc): Block X input while doing the deed.
      	(VALIDATE_LISP_STORAGE, gc_sweep, compact_strings): Use xfree
      	instead of free.
      	(uninterrupt_malloc): New function, to install input-blocking
      	hooks into the GNU malloc routines.
      	* emacs.c [not SYSTEM_MALLOC] (main): Call uninterrupt_malloc
      	on startup.
      	* alloc.c: (make_interval, make_float, Fcons, Fmake_vector,
      	Fmake_symbol, Fmake_marker, make_uninit_string, Fgarbage_collect):
      	Use xmalloc instead of malloc; don't bother to check if out of
      	memory here.
      	(Fgarbage_collect): Call xrealloc instead of realloc.
      	* buffer.c: Use xmalloc and xfree instead of malloc and free;
      	don't bother to check if out of memory here.
      	(Fget_buffer_create): Put BLOCK_INPUT/UNBLOCK_INPUT pair around
      	calls to ralloc routines.
      	* insdel.c: Same.
      	* lisp.h (xfree): New extern declaration.
      	* xfaces.c (xfree): Don't #define this to be free; use the
      	definition in alloc.c.
      	* dispnew.c, doc.c, doprnt.c, fileio.c, lread.c, term.c, xfns.c,
      	xmenu.c, xterm.c: Use xfree instead of free.
      	* hftctl.c: Use xfree and xmalloc instead of free and malloc.
      	* keymap.c (current_minor_maps): BLOCK_INPUT while calling realloc
      	and malloc.
      	* search.c: Since the regexp routines can malloc, BLOCK_INPUT
      	while runing them.  #include blockinput.h.
      	* sysdep.c: #include blockinput.h.  Call xfree and xmalloc instead
      	of free and malloc.  BLOCK_INPUT around routines which we know
      	will call malloc.
      
      	ymakefile (keyboard.o, keymap.o, search.o, sysdep.o, xfaces.o,
      	xfns.o, xmenu.o, xterm.o, xselect.o, alloc.o, eval.o): Note that
      	these depend on blockinput.h.
      9ac0d9e0
  10. 25 Mar, 1993 1 commit
  11. 20 Mar, 1993 2 commits
    • Jim Blandy's avatar
      * xterm.c (x_term_init): If the X connection is already in file · a4fc7360
      Jim Blandy authored
      	descriptor zero, don't dup it and close the old one.
      a4fc7360
    • Jim Blandy's avatar
      * emacs.c (Finvocation_name): New function. · 59653951
      Jim Blandy authored
      	(Vinvocation_name): New variable.
      	(init_cmdargs): Set it.
      	(syms_of_emacs): defsubr Finvocation_name, staticpro and
      	initialize Vinvocation_name.
      	* lisp.h (Vinvocation_name): New extern declaration.
      	* xterm.c (invocation_name): Variable deleted; use
      	Vinvocation_name now.
      	(x_text_icon, x_term_init): Use Vinvocation_name now instead of
      	invocation_name.
      	(x_term_init): Don't initialize invocation_name.
      	(syms_of_xterm): Don't initialize or staticpro invocation_name.
      	* xfns.c (invocation_name): Remove extern declaration for this.
      	[HAVE_X11] (Fx_get_resource): Use Vinvocation_name now instead of
      	invocation_name.
      	[not HAVE_X11] (Fx_get_default): Same.
      59653951
  12. 17 Mar, 1993 1 commit
  13. 15 Mar, 1993 1 commit
  14. 11 Mar, 1993 1 commit
  15. 08 Mar, 1993 1 commit
    • Richard M. Stallman's avatar
      (XTread_socket): · 10e6549c
      Richard M. Stallman authored
      Don't reverse the chars that XLookupString returns.  Use all of them.
      Save last 100 chars and keysyms in temp_buffer.
      10e6549c
  16. 07 Mar, 1993 1 commit
  17. 05 Mar, 1993 1 commit
  18. 02 Mar, 1993 1 commit
    • Jim Blandy's avatar
      Use the term `scroll bar', instead of `scrollbar'. · ab648270
      Jim Blandy authored
      	* alloc.c, frame.c, frame.h, indent.c, keyboard.c, keyboard.h,
      	lisp.h, term.c, termhooks.h, window.c, window.h, xdisp.c, xfns.c,
      	xterm.c, xterm.h: Terminology changed.
      
      	* xterm.c (x_window_to_scrollbar, x_scrollbar_expose,
      	x_scrollbar_handle_click, x_scrollbar_note_movement): Remember
      	that these can be called during GC; we have to ignore mark bits.
      	* lisp.h (GC_NILP, GC_EQ): New macros to help with that.
      ab648270
  19. 22 Feb, 1993 1 commit
  20. 14 Feb, 1993 1 commit
    • Jim Blandy's avatar
      * xterm.c (x_set_window_size): Call change_frame_size instead of · 8922af5f
      Jim Blandy authored
      	just setting the `rows' and `cols' members of the frame, and
      	leaving the window tree in complete disarray.
      
      	* xterm.c (x_io_error_quitter): New function.
      	(x_error_quitter): Note that this is only used for protocol
      	errors now, not I/O errors.
      	(x_term_init): Set the I/O error handler to x_io_error_quitter.
      8922af5f
  21. 07 Feb, 1993 1 commit
  22. 26 Jan, 1993 1 commit
  23. 22 Jan, 1993 1 commit
    • Jim Blandy's avatar
      * xterm.c (x_scrollbar_create): Set the scrollbars to use · c0ff3fab
      Jim Blandy authored
      	EastGravity.
      
      	* frame.c (Fdelete_frame): Clear the frame's display after calling
      	the window-system-dependent frame destruction routine.  We
      	no longer need to pass the display as a separate argument to
      	x_destroy_window.
      	* xterm.c (x_destroy_window): Put the code which clears out f's
      	display here, right after we free the storage it points to.  Put
      	everything, including the code which clears x_focus_frame and
      	x_highlight_frame, inside the BLOCK/UNBLOCK_INPUT pair.
      c0ff3fab
  24. 16 Jan, 1993 1 commit
    • Jim Blandy's avatar
      * xterm.c (x_window_to_scrollbar): Search frames' · cf7cb199
      Jim Blandy authored
      	condemned_scrollbars list as well; input might arrive during
      	redisplay.
      	(x_scrollbar_report_motion): Don't forget to BLOCK_INPUT.
      	(XTjudge_scrollbars): Clear the condemned scrollbar list before
      	traversing it, so we don't try to process an event on a scrollbar
      	we've killed.
      cf7cb199
  25. 14 Jan, 1993 2 commits
    • Jim Blandy's avatar
      * xterm.c (x_scrollbar_create): Include PointerMotionHintMask in · 9a572e2a
      Jim Blandy authored
      	the event mask for scrollbars.
      9a572e2a
    • Jim Blandy's avatar
      Make scrollbar structures into lisp objects, so that they can be · 12ba150f
      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.
      
      	* xterm.c (x_scrollbar_background_expose): Function deleted; we
      	don't want anything in the background there after all.
      	(XTread_socket): Don't call x_scrollbar_background_expose.  We
      	don't care.
      
      	* xterm.h (CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT,
      	PIXEL_TO_CHAR_WIDTH, PIXEL_TO_CHAR_HEIGHT): Rewritten, using:
      	(CHAR_TO_PIXEL_ROW, CHAR_TO_PIXEL_COL, PIXEL_TO_CHAR_ROW,
      	PIXEL_TO_CHAR_COL): New macros.
      	* xfns.c [not HAVE_X11] (Fx_create_frame): Use the
      	PIXEL_TO_CHAR_{HEIGHT,WIDTH} macros to figure the frame's
      	character size, and the CHAR_TO_PIXEL* macros for vice versa.
      	* xterm.c (XTwrite_glyphs, XTclear_end_of_line, stufflines,
      	scraplines, dumprectangle, pixel_to_glyph_coords, x_draw_box,
      	clear_cursor, x_display_bar_cursor, x_draw_single_glyph,
      	x_set_mouse_position): Use the CHAR_TO_PIXEL_* macros.
      
      	* xterm.c (x_wm_set_size_hint): The max_width and max_height
      	members of the size_hints are expressed in pixels, not columns.
      
      	* xterm.c (x_set_window_size): Remove ibw var; it's not used.
      	Set FRAME_WIDTH (f) to cols instead of rows.  Duh.
      
      	* xterm.c (pixel_to_glyph_coords): Properly set *bounds to the
      	character cell bounding the position, even when the position is
      	off the frame.
      
      	* 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.
      
      	* xterm.c (XTmouse_position): Entirely rewritten, using
      	XTranslateCoordinates.  Call x_scrollbar_report_motion to handle
      	scrollbar movement events.
      	(x_scrollbar_report_motion): New function, to help out
      	XTmouse_position.
      
      	* 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.
      
      	* xterm.c (last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
      	last_mouse_scroll_range_start, last_mouse_scroll_range_end):
      	Replaced with...
      	(last_mouse_scrollbar): New variable.
      	(note_mouse_movement): Clear last_mouse_scrollbar when we have
      	receieved a new motion.
      	(syms_of_xterm): Staticpro last_mouse_scrollbar.
      
      	* xterm.c (note_mouse_position): Renamed to note_mouse_movement,
      	because that's what it really does.
      	(x_scrollbar_handle_motion): Renamed to x_scrollbar_note_movement,
      	for consistency.
      	(XTread_socket): Adjusted.
      
      	* xterm.c (XTset_scrollbar): Renamed to XTset_vertical_scrollbar.
      	(x_term_init): Adjusted.
      
      	* 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.
      
      	* xterm.c (x_error_quitter): Move the abort call to after we print
      	the error message.  No harm in that.
      12ba150f
  26. 07 Jan, 1993 1 commit
  27. 24 Dec, 1992 1 commit
    • Jim Blandy's avatar
      * frame.h (struct frame): New fields `can_have_scrollbars' and · f451eb13
      Jim Blandy authored
      	`has_vertical_scrollbars'.
      	(FRAME_CAN_HAVE_SCROLLBARS, FRAME_HAS_VERTICAL_SCROLLBARS): New
      	accessors, for both the MULTI_FRAME and non-MULTI_FRAME.
      	(VERTICAL_SCROLLBAR_WIDTH, WINDOW_VERTICAL_SCROLLBAR,
      	WINDOW_VERTICAL_SCROLLBAR_COLUMN,
      	WINDOW_VERTICAL_SCROLLBAR_HEIGHT): New macros.
      	* window.h (struct window): New field `vertical_scrollbar'.
      	* xterm.h (struct x_display): vertical_scrollbars,
      	judge_timestamp, vertical_scrollbar_extra: New fields.
      	(struct scrollbar): New struct.
      	(VERTICAL_SCROLLBAR_PIXEL_WIDTH, VERTICAL_SCROLLBAR_PIXEL_HEIGHT,
      	VERTICAL_SCROLLBAR_LEFT_BORDER, VERTICAL_SCROLLBAR_RIGHT_BORDER,
      	VERTICAL_SCROLLBAR_TOP_BORDER, VERTICAL_SCROLLBAR_BOTTOM_BORDER,
      	CHAR_TO_PIXEL_WIDTH, CHAR_TO_PIXEL_HEIGHT, PIXEL_TO_CHAR_WIDTH,
      	PIXEL_TO_CHAR_HEIGHT): New accessors and macros.
      	* frame.c (make_frame): Initialize the `can_have_scrollbars' and
      	`has_vertical_scrollbars' fields of the frame.
      	* term.c (term_init): Note that TERMCAP terminals don't support
      	scrollbars.
      	(mouse_position_hook): Document new args.
      	(set_vertical_scrollbar_hook, condemn_scrollbars_hook,
      	redeem_scrollbar_hook, judge_scrollbars_hook): New hooks.
      	* termhooks.h: Declare and document them.
      	(enum scrollbar_part): New type.
      	(struct input_event): Describe the new form of the scrollbar_click
      	event type.  Change `part' from a Lisp_Object to an enum
      	scrollbar_part.  Add a new field `scrollbar'.
      	* keyboard.c (kbd_buffer_get_event): Pass appropriate new
      	parameters to *mouse_position_hook, and make_lispy_movement.
      	* xfns.c (x_set_vertical_scrollbar): New function.
      	(x_figure_window_size): Use new macros to calculate frame size.
      	(Fx_create_frame): Note that X Windows frames do support scroll
      	bars.  Default to "yes".
      	* xterm.c: #include <X11/cursorfont.h> and "window.h".
      	(x_vertical_scrollbar_cursor): New variable.
      	(x_term_init): Initialize it.
      	(last_mouse_bar, last_mouse_bar_frame, last_mouse_part,
      	last_mouse_scroll_range_start, last_mouse_scroll_range_end): New
      	variables.
      	(XTmouse_position): Use them to return scrollbar movement events.
      	Take new arguments, for that purpose.
      	(x_window_to_scrollbar, x_scrollbar_create,
      	x_scrollbar_set_handle, x_scrollbar_remove, x_scrollbar_move,
      	XTset_scrollbar, XTcondemn_scrollbars, XTredeem_scrollbar,
      	XTjudge_scrollbars, x_scrollbar_expose,
      	x_scrollbar_background_expose, x_scrollbar_handle_click,
      	x_scrollbar_handle_motion): New functions to implement scrollbars.
      	(x_term_init): Set the termhooks.h hooks to point to them.
      	(x_set_window_size): Use new macros to calculate frame size.  Set
      	vertical_scrollbar_extra field.
      	(x_make_frame_visible): Use the frame accessor
      	FRAME_HAS_VERTICAL_SCROLLBARS to decide if we need to map the
      	frame's subwindows as well.
      	(XTread_socket): Use new size-calculation macros from xterm.h when
      	processing ConfigureNotify events.
      	(x_wm_set_size_hint): Use PIXEL_TO_CHAR_WIDTH and
      	PIXEL_TO_CHAR_HEIGHT macros.
      	* ymakefile (xdisp.o): This now depends on termhooks.h.
      	(xterm.o): This now depends on window.h.
      
      	* xterm.h (struct x_display): Delete v_scrollbar, v_thumbup,
      	v_thumbdown, v_slider, h_scrollbar, h_thumbup,
      	h_thumbdown, h_slider, v_scrollbar_width, h_scrollbar_height
      	fields.
      	* keyboard.c (Qvscrollbar_part, Qvslider_part, Qvthumbup_part,
      	Qvthumbdown_part, Qhscrollbar_part, Qhslider_part, Qhthumbup_part,
      	Qhthumbdown_part, Qscrollbar_click): Deleted; part of an obsolete
      	interface.
      	(head_table): Removed from here as well.
      	(syms_of_keyboard): And here.
      	* keyboard.h: And here.
      	(POSN_SCROLLBAR_BUTTON): Removed.
      	* xscrollbar.h: File removed - no longer necessary.
      	* xfns.c: Don't #include it any more.
      	(Qhorizontal_scroll_bar, Qvertical_scroll_bar): Deleted.
      	(syms_of_xfns): Don't initialize or staticpro them.
      	(gray_bits): Salvaged from xscrollbar.h.
      	(x_window_to_scrollbar): Deleted.
      	(x_set_horizontal_scrollbar): Deleted.
      	(enum x_frame_parm, x_frame_parms): Remove references to
      	x_set_horizontal_scrollbar.
      	(x_set_foreground_color, x_set_background_color,
      	x_set_border_pixel): Remove special code to support scrollbars.
      	(Fx_create_frame): Remove old scrollbar setup code.
      	(install_vertical_scrollbar, install_horizontal_scrollbar,
      	adjust_scrollbars, x_resize_scrollbars): Deleted.
      	* xterm.c (construct_mouse_click): This doesn't need to take care of
      	scrollbar clicks anymore.
      	(XTread_socket): Remove old code to support scrollbars.  Call new
      	functions instead for events which occur in scrollbar windows.
      	(XTupdate_end): Remove call to adjust_scrollbars; the main
      	redisplay code takes care of that now.
      	(enum window_type): Deleted.
      	* ymakefile: Note that xfns.o no longer depends on xscrollbar.h.
      
      	* xterm.c (x_set_mouse_position): Clip mouse position to be within
      	frame.
      
      	* xterm.c: Adjust the first line of each page to have a reasonable
      	description.  This makes pages-directory more useful.
      
      	* xterm.c (x_do_pending_expose): Declare this routine only if
      	HAVE_X11 is not #defined; X11 doesn't need it.
      	(XTread_socket): Protect call to x_do_pending_expose with `#ifdef
      	HAVE_X11'.
      
      	* xterm.c (notice_mouse_movement): Deleted; obsolete and unused.
      
      	Properly handle focus shift events, so the cursor is filled and
      	hollow at the appropriate times, even in titleless windows.
      	* xterm.c (x_focus_event_frame): New variable.
      	(XTread_socket): When we receive a FocusIn event that's not
      	NotifyPointer, record the frame in x_focus_event_frame.  When we
      	receive a FocusOut event that's not NotifyPointer, clear it.  When
      	we get a LeaveNotify event, don't take it seriously if we still
      	have focus.
      
      	* xterm.c (XTread_socket): Remove special code in EnterNotify case
      	to handle scrollbars and fake mouse motion events.
      
      	Change the meaning of focus redirection to make switching windows
      	work properly.  Fredirect_frame_focus has the details.
      	* frame.h (focus_frame): Doc fix.
      	[not MULTI_FRAME] (FRAME_FOCUS_FRAME): Make this Qnil, which
      	indicates no focus redirection, instead of zero, which is
      	selected_frame.
      	* frame.c (make_frame): Initialize f->focus_frame to Qnil, rather
      	than making it point to frame itself.
      	(Fselect_frame): If changing the selected frame from FOO to BAR,
      	make all redirections to FOO shift to BAR as well.  Doc fix.
      	(Fredirect_frame_focus): Doc fix.  Accept nil as a valid
      	redirection, not just as a default for FRAME.
      	(Fframe_focus): Doc fix.
      	* keyboard.c (kbd_buffer_store_event, kbd_buffer_get_event): Deal
      	with focus redirections being nil.
      	* xterm.c (XTframe_rehighlight): Doc fix.  Deal with focus
      	redirections being nil.
      
      	* xterm.c (x_error_quitter): Just abort, so we can look at the
      	core to see what happened.
      
      	It's a pain to remember that you can't assign to FRAME->visible.
      	Let's change all references to the `visible' member of struct
      	frame to use the accessor macros, and then write a setter for the
      	`visible' field that does the right thing.
      	* frame.h (FRAME_VISIBLE_P): Make this not an l-value.
      	(FRAME_SET_VISIBLE): New macro.
      	* frame.c (make_terminal_frame, Fdelete_frame): Use FRAME_SET_VISIBLE.
      	(Fframe_visible_p, Fvisible_frame_list): Use FRAME_VISIBLE_P and
      	FRAME_ICONIFIED_P.
      	* dispnew.c (Fredraw_display): Use the FRAME_VISIBLE_P and
      	FRAME_GARBAGED_P accessors.
      	* xdisp.c (redisplay): Use the FRAME_VISIBLE_P accessor.
      	* xfns.c (x_set_foreground_color, x_set_background_color,
      	x_set_cursor_color, x_set_border_pixel, x_set_icon_type): Use the
      	FRAME_VISIBLE_P accessor.
      	(Fx_create_frame): Use FRAME_SET_VISIBILITY.
      	* xterm.c (clear_cursor, x_display_bar_cursor,
      	x_display_box_cursor): Use FRAME_SET_VISIBILITY.
      f451eb13
  28. 06 Dec, 1992 1 commit
    • Jim Blandy's avatar
      * xterm.c (XTread_socket): When we get MapNotify, UnmapNotify, · 3a88c238
      Jim Blandy authored
      	Expose, ExposeWindow, or UnmapWindow, set f->async_visible, not
      	f->visible.
      	(x_do_pending_expose, x_raise_frame, x_lower_frame,
      	x_make_frame_invisible, x_make_frame_visible, x_iconify_frame):
      	Test and set f->async_visible and f->async_iconified, not
      	f->visible or f->async_iconified.
      3a88c238
  29. 31 Oct, 1992 1 commit
    • Jim Blandy's avatar
      * xterm.c (x_convert_modifiers): Declare this to return an · 7c5283e4
      Jim Blandy authored
      	unsigned int, not a Lisp_Object.  Remember that the quiescent
      	value for part is Qnil, not zero, that x_mouse_x and x_mouse_y
      	are ints, not Lisp_Objects, and that RESULT->x and RESULT->y are
      	Lisp_Objects, not ints.
      	(XTread_socket): Declare this to return int, not Lisp_Object.
      	When calling construct_mouse_click on a non-scrollbar click, pass
      	PART as Qnil, not zero.
      	(x_calc_absolute_position): Remember that x_screen_width and
      	x_screen_height are ints, not Lisp_Objects.
      e
      7c5283e4
  30. 19 Oct, 1992 1 commit
    • Jim Blandy's avatar
      * xterm.c (compose_status): New variable. · 11edeb03
      Jim Blandy authored
      	(XTread_socket): Pass it by reference to XLookupString.
      
      	* xterm.c: Clean up some of the caps lock handling:
      	(x_shift_lock_mask): New variable.
      	(x_find_modifier_mappings): Set it, based on the modifier mappings.
      	(x_convert_modifiers): Use x_shift_lock_mask, instead of assuming
      	that the lock bit always means to shift the character.
      	(XTread_socket): When handling KeyPress events, don't pass an
      	XComposeStatus structure along to XLookupString.  When handling
      	MappingNotify events, call XRefreshKeyboardMapping for both
      	MappingModifier and MappingKeyboard events, not just the latter.
      11edeb03
  31. 11 Oct, 1992 1 commit
  32. 03 Oct, 1992 1 commit
    • Jim Blandy's avatar
      * xterm.c (x_find_modifier_meanings): If there are no · f689eb05
      Jim Blandy authored
      	modifiers containing a Meta_ keysym, use the Alt keysyms to
      	denote meta.
      	(construct_mouse_click): Set the down_modifier bit on mouse
      	button press events.
      	(XTread_socket): When processing keypress events, use
      	x_meta_mod_mask when processing ordinary ASCII characters, not
      	just when processing function keys and other non-ASCII events.
      	(XTread_socket): If we receive a MappingNotify event with the
      	`request' member set to `MappingModifier', then call
      	x_find_modifier_meanings to refresh x_meta_mod_mask.
      f689eb05
  33. 30 Sep, 1992 1 commit
    • Jim Blandy's avatar
      * xterm.c (x_meta_mod_mask): New variable, indicating which X · 28430d3c
      Jim Blandy authored
      	modifier bits denote meta keys.
      	(x_find_modifier_meanings): New function, to set x_meta_mod_mask.
      	(x_convert_modifiers): Use that.
      	(x_term_init): Call x_find_modifier_meanings.
      
      	* xterm.c (XTread_socket): Pass PropertyNotify events from the
      	root window to x_invalidate_cut_buffer_cache.
      	(x_term_init): Call x_watch_cut_buffer_cache here.
      28430d3c
  34. 13 Sep, 1992 1 commit
    • Jim Blandy's avatar
      * xterm.c (x_wm_set_size_hint): Set the base_width and base_height · b0342f17
      Jim Blandy authored
      	members of size_hints, if they're available (X11R4 and after);
      	otherwise, approximate the right thing, by using min_width and
      	min_height as the base size.
      
      	* xterm.c (x_catch_errors): Don't forget to initialize
      	x_caught_error_message to the null string, so x_check_errors can
      	tell when an error has occurred.
      b0342f17
  35. 04 Sep, 1992 1 commit