Use FRAME_X_DISPLAY instead of x_current_display and XDISPLAY.
(x_make_frame_visible, x_make_frame_invisible): Pass a frame ptr to x_sync. (x_term_init): Init all the components of dpyinfo. (x_display_info_for_display): New function. (x_*_mod_mask): Variables deleted. (x_x_to_emacs_modifiers, x_emacs_to_x_modifiers): New arg dpyinfo; all callers changed. Store the masks in that structure. (icon_bitmap): Variable deleted. (x_bitmap_icon): Use icon_bitmap_id in x_display_info. (icon_font_info): Variable deleted. (x_term_init): Set up `connection' field. (x_find_modifier_meanings): Arg is now struct x_display_info *. (x_term_init): Return an x_display_info *. Store all the data in it, including X atoms and xrdb. Put the x_display_info structure on x_display_list. Pass name as Lisp_Object. (the_x_screen): Variable moved here. (syms_of_xterm): Staticpro parts of the_x_screen. (windowinfo): Variable deleted. (Xatom_*): Variables deleted. (x_iconify_frame, XTread_socket): Get atoms from the x_display_info, (XTread_socket): Don't update Vmouse_depressed. (x_mouse_grabbed): Variable deleted. (note_mouse_highlight): Use grabbed field instead. (XTmouse_position, XTread_socket): Likewise. (x_calc_absolute_position, x_wm_set_size_hint): Get screen height, width from the x_display_info structure.
Showing with 407 additions and 325 deletions