1. 20 Mar, 1993 2 commits
    • Richard M. Stallman's avatar
      (Fx_display_color_p): Renamed from Fx_color_display_p. · bcc426b4
      Richard M. Stallman authored
      (syms_of_xfns): Use new name in defsubr.
      bcc426b4
    • Richard M. Stallman's avatar
      (x_screen): Make this var file scope. · 41beb8fc
      Richard M. Stallman authored
      (Fx_server_version): Use Fcons, not list3.
      
      (Fx_server_vendor, Fx_server_version, Fx_display_pixel_width)
      (Fx_display_pixel_height, Fx_display_mm_width, Fx_display_mm_height)
      (Fx_display_screens, Fx_display_planes, Fx_display_color_cells)
      (Fx_display_visual_class, Fx_display_backing_store)
      (Fx_display_save_under): New functions.
      (x_screen_count, Vx_vendor, x_release, x_screen_height_mm)
      (x_screen_width_mm, Vx_backing_store, x_save_under, Vx_screen_visual)
      (x_visual_strings): Vars deleted.
      (Fx_open_connection): Don't init those vars.
      (syms_of_xfns): Set up new functions.  Don't set up those vars as Lisp vars.
      Nor x-screen-width and x-screen-height.
      41beb8fc
  2. 15 Mar, 1993 1 commit
    • Richard M. Stallman's avatar
      (Xatom_wm_change_state): Just declare. · 99e72068
      Richard M. Stallman authored
      (Xatom_emacs_selection, Xatom_clipboard, Xatom_clipboard_selection):
      (Xatom_wm_change_state, Xatom_incremental, Xatom_multiple):
      (Xatom_targets, Xatom_timestamp, Xatom_delete, Xatom_insert_selection):
      (Xatom_pair, Xatom_insert_property, Xatom_text): Decls deleted.
      (x_begin_selection_own): Decls deleted.
      (Fx_open_connection): Set up only the wm atoms here.
      Call Xatoms_of_xselect.
      99e72068
  3. 11 Mar, 1993 1 commit
  4. 08 Mar, 1993 1 commit
  5. 02 Mar, 1993 1 commit
  6. 22 Feb, 1993 1 commit
  7. 14 Feb, 1993 1 commit
    • Jim Blandy's avatar
      * frame.c (Fframe_parameters): Report the `minibuffer' parameter of · baaed68e
      Jim Blandy authored
      	minibufferless frames as nil, not `none'.
      	(Qnone): Remove declaration and initialization for this.  It's not
      	needed anymore.
      	* xfns.c (Qnone): Add them here; we still accept "none" as a valid
      	value for the `minibuffer' parameter.
      
      	* xfns.c (x_frame_params): Remember that the parameters are called
      	"auto-raise" and "auto-lower", not "autoraise" and "autolower".
      baaed68e
  8. 26 Jan, 1993 1 commit
  9. 14 Jan, 1993 1 commit
    • Jim Blandy's avatar
      * xfns.c (Fx_create_frame): After mapping the frame, call · cf177271
      Jim Blandy authored
      	SET_FRAME_GARBAGED, not just plain FRAME_GARBAGED.
      
      	* xfns.c (Qvertical_scrollbars): New symbol.  Use it as the name
      	of the parameter which decides whether or not the frame has
      	scrollbars, instead of Qvertical_scrollbar.
      	(Fx_create_frame): Adjusted accordingly.
      	(syms_of_xfns): Initialize and staticpro Qvertical_scrollbars.
      	(x_set_vertical_scrollbar): Renamed to x_set_vertical_scrollbars.
      	(x_frame_parms): Adjusted accordingly.
      
      	* 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.
      
      	* xfns.c (x_set_name): To request that the modelines be redrawn,
      	execute the statement "update_mode_lines = 1;" instead of the
      	silly statement "update_mode_lines;".
      
      	* xfns.c (x_set_vertical_scrollbars): Don't try to set the
      	X window's size if the frame's X window hasn't been created yet.
      
      	* xfns.c (x_figure_window_size): Set the frame's
      	vertical_scrollbar_extra field before trying to calculate its
      	pixel dimensions.
      
      	* xfns.c (x_window): When calling x_implicitly_set_name for the
      	sake of drawing the name for the first time, remember to clear and
      	set the frame's explicit_name member as well as its name member.
      	(Fx_create_frame): Set the frame's explicit_name member if the
      	user specified the name explicitly.
      
      	* xfns.c (Fx_get_resource): Add CLASS argument, to give class of
      	ATTRIBUTE.
      	[not HAVE_X11]: Change definition of Fx_get_resource macro
      	accordingly.
      	(x_get_arg): Add CLASS argument, to give the class of ATTRIBUTE.
      	Pass it along to Fx_get_resource.
      	(x_figure_window_size, x_icon): Pass new argument to x_get_arg.
      	(x_default_parameter): Add XCLASS argument, to give the class of
      	XPROP.  Pass it along to x_get_arg.
      	(Fx_create_frame): Pass new args to x_get_arg and
      	x_default_parameter.
      
      	* xfns.c (Fx_create_frame): Use the same resource names and
      	classes as xterm and Emacs 18.
      cf177271
  10. 03 Jan, 1993 1 commit
  11. 24 Dec, 1992 1 commit
    • Jim Blandy's avatar
      * frame.h (struct frame): New fields `can_have_scrollbars' and · 179956b9
      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.
      
      	* xfns.c (syms_of_xfns): Delete defvars for x_mouse_x and
      	x_mouse_y.  That interface hasn't been live for years.
      	(x_mouse_x, x_mouse_y): Delete these variables.
      
      	* xfns.c (Fx_create_frame): Don't initialize the wm_hints field here.
      	(x_window): Do it here, along with all the similar stuff.
      
      	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.
      179956b9
  12. 06 Dec, 1992 1 commit
  13. 16 Nov, 1992 1 commit
  14. 31 Oct, 1992 1 commit
    • Jim Blandy's avatar
      * xfns.c (x_decode_color, Fx_color_display_p): x_screen_planes is · a6605e5c
      Jim Blandy authored
      	an int, not a Lisp_Object.
      	(x_set_mouse_color): Give separate error messages for the
      	different cursors we try to set.
      	(Fx_geometry): Declare STRING to be a Lisp_Object.
      	(Fx_create_frame): No need to use XSET to assign NAME to f->name;
      	they're both Lisp_Objects.
      	(adjust_scrollbars): Use XINT to access w->hscroll.
      	(Fx_open_connection): x_screen_count, x_release, x_screen_height,
      	x_screen_height_mm, x_screen_width, x_screen_width_mm,
      	x_save_under, and x_screen_planes are integers, not Lisp_Objects.
      	(syms_of_xfns): x_mouse_x, x_mouse_y, and mouse_buffer_offset are
      	integers, not Lisp_Objects.
      a6605e5c
  15. 19 Oct, 1992 1 commit
  16. 13 Sep, 1992 1 commit
  17. 11 Sep, 1992 1 commit
  18. 29 Aug, 1992 1 commit
    • Jim Blandy's avatar
      * xfns.c (x_icon): Don't call x_wm_set_icon_positions if the user · fe24a618
      Jim Blandy authored
      	hasn't specified the icon position.  Let the window manager put
      	the icon where it likes.
      
      	* xfns.c (x_set_name): Use XSetWM{Name,IconName} when available
      	[HAVE_X11R4], or XSetIconName and XStoreName otherwise.
      
      	* xfns.c: Use the FRAME_X_WINDOW for readability.
      
      	* xfns.c (x_set_mouse_color): Use x_catch_errors, x_check_errors,
      	and x_uncatch errors to avoid crashing if the user selects an
      	odd cursor.
      
      	* xfns.c (select_visual): Use XVisualIDFromVisual when available
      	[HAVE_X11R4].
      fe24a618
  19. 19 Aug, 1992 1 commit
    • Jim Blandy's avatar
      * xfns.c (x_set_name): Take new argument EXPLICIT, instead of · f945b920
      Jim Blandy authored
      	OLDVAL.
      	(x_explicitly_set_name, x_implicitly_set_name): New functions.
      	(x_frame_parms): Use x_explicitly_set_name here.
      	(x_window): Use x_implicitly_set_name here.
      
      	* xfns.c (Fx_create_frame): Initialize f->display.x->wm_hints here.
      
      	* xfns.c (x_set_name): Call x_set_text_property with a Lisp_Object
      	string as an argument, rather than a pointer and a length.
      
      	* xfns.c (x_get_arg): Accept a new type - symbol.  If we've
      	retrieved a string from the xrdb database and the user wants a
      	symbol, intern it.
      	(Fx_create_frame): Use the symbol type here.
      
      	* xfns.c (x_figure_window_size, x_icon, Fx_create_frame): Use
      	values from enum resource_types for the last arg to x_get_arg,
      	instead of passing numbers.
      
      	* xfns.c (Fx_create_frame): When setting up the scroll bars, use
      	the type parameter to x_default_parameter, rather than prefixing
      	the resource name with a question mark.
      
      	* xfns.c [not HAVE_X11] (Fx_create_frame): The resource which
      	determines whether or not to use a bitmapped icon is called
      	"IconType", not "BitmapIcon".  Update this.
      
      	* xfns.c (x_set_name): Used x_set_text_property instead of XSetWMName and
      	XSetWMIconName.
      
      	* xfns.c (select_visual): Fetch the visual id directly from v;
          	don't call XVisualIDFromVisual, since that function is not
          	available in earlier versions of X.
      
      	* xfns.c (x_make_gc): cursor_bits can't be local to the function;
      	it's static.
      
      	* xfns.c (Fx_create_frame): Make the default for the icon-type
          	parameter nil, not t.  It seems to cause problems with some X
          	servers.
      f945b920
  20. 12 Aug, 1992 1 commit
    • Jim Blandy's avatar
      * xfns.c (x_get_arg): Return Qunbound for an unspecified · f9942c9e
      Jim Blandy authored
      	resource, not nil.  That way, we can tell the difference between a
      	false resource and an unspecified resource.
      	(x_default_error): Use DEFLT if x_get_arg returns Qunbound, not Qnil.
      	(x_figure_window_size, x_icon, Fx_create_frame): Deal with
      	Qunbound and Qnil properly.
      
      	* xfns.c (Fx_create_frame): Pass the correct number of arguments
      	to x_set_font.
      
      	* xfns.c [not HAVE_X11] (Fx_create_frame): Delete section that's
      	only included if we *do* have X11.  Blind patching.
      
              * xfns.c (x_icon): Rewritten to call x_wm_set_icon_position and
      	x_wm_set_window_state instead of calling XSetWMHints directly.
      	(x_wm_set_window_state, x_wm_set_icon_pixmap,
      	x_wm_set_icon_position): Use x_wm_hints.
      	(x_term_init): Set the `input' field of x_wm_hints, and its flag.
      
      	* xfns.c (x_default_parameter): Don't call store_frame_param here;
      	it's already taken care of by x_set_frame_parameters.
      
      	* xfns.c (Fx_create_frame): Check for the `icon-type',
      	`auto-raise', and `auto-lower' parameters. Have `icon-type'
      	default to t, indicating that we want the nifty gnu in our icons.
      	(Qauto_lower): New symbol.
      
      	* xfns.c (x_set_icon_type): UNBLOCK_INPUT before reporting the
      	error, not after.  error doesn't return, sklitch-brain.
      
      	* xfns.c (x_set_frame_parameters): Properly recognize changes to
      	the height of the frame.  Recognize changes of the frame's
      	position.
      
      	* xfns.c (x_set_frame_parameters): Iterate over ALIST while the
      	current element is cons, not while it's non-nil.
      	(syms_of_xfns): Call init_x_parm_symbols after interning all the
      	other atoms; init_x_parm_symbols expects Qx_frame_parameter to be
      	initialized.
      
      	* xfns.c (Qbackground_color, Qborder_color,  Qborder_width,
      	Qcursor_color,  Qfont,  Qforeground_color,  Qgeometry,
      	Qhorizontal_scroll_bar,  Qicon_left,  Qicon_top,  Qiconic_startup,
      	Qinternal_border_width,  Qleft,  Qmouse_color,  Qparent_id,
      	Qsuppress_icon,  Qsuppress_initial_map,  Qtop,  Qundefined_color,
      	Qvertical_scroll_bar,  Qwindow_id,  Qx_frame_parameter): New
      	symbols, with lisp code to rebuild syms_of_xfns.
      	(syms_of_xfns): Initialize and staticpro them.
      	(Qheight, Qminibuffer, Qname, Qnone, Qonly, Qwidth,
      	Qunsplittable): Add extern declaration for these.
      	(x_init_parm_symbols): Don't initialize Qx_frame_parameter here;
      	it's done in syms_of_xfns.
      	(x_default_parameter): Change the argument char *PROPNAME into a
      	Lisp_Object PROP; let the caller take care of interning the atom.
      	(Fx_geometry, x_figure_window_size, x_icon, Fx_create_frame): Use
      	the new Q... variables, instead of interning things.
      
      	* xfns.c (x_set_frame_param): Replaced by x_set_frame_parameters.
      	(x_set_frame_parameters): Process the alist of parameters here.
              Notice `width', `height', `top', and `left' parameters.
              Hold off changing the frame size and position until the end, so we
      	can do both parameters at once when they are both specified.
      	(x_default_parameter): Call x_set_frame_parameters, not
      	x_set_frame_param.
      
      	* xfns.c (x_figure_window_size): Indicate that this function
      	returns an int, rather than just leaving it unstated.
      
      	* xfns.c (Fx_create_frame): Call change_frame_size with a DELAY of 0.
      f9942c9e
  21. 21 Jul, 1992 1 commit
  22. 17 Jul, 1992 1 commit
  23. 14 Jul, 1992 1 commit
  24. 24 Jun, 1992 1 commit
  25. 10 Jun, 1992 1 commit
  26. 09 Jun, 1992 1 commit
  27. 08 Jun, 1992 1 commit
  28. 04 Jun, 1992 2 commits
  29. 12 May, 1992 2 commits
  30. 24 Apr, 1992 1 commit
  31. 28 Jan, 1992 1 commit
  32. 13 Jan, 1992 1 commit
  33. 26 Nov, 1991 1 commit
  34. 16 Aug, 1991 1 commit
  35. 14 Aug, 1991 1 commit