1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-12-23 10:34:07 +00:00
Commit Graph

465 Commits

Author SHA1 Message Date
Karl Heuer
eee20f6aa9 (x_term_init): Call init_sigio only if interrupt_input. 1995-05-29 19:41:18 +00:00
Karl Heuer
aa3ff7c943 (x_set_offset): Distinguish CHANGE_GRAVITY < 0 case. 1995-05-29 07:27:09 +00:00
Karl Heuer
7c21100ae3 (XTread_socket): Don't call popup_get_selection here. 1995-05-26 22:46:36 +00:00
Karl Heuer
78aa2ba571 (XTread_socket): For MapNotify, call record_asynch_buffer_change. 1995-05-25 17:07:37 +00:00
Karl Heuer
c32cdd9a11 (XTflash): Use pointers as args to select.
(XTread_socket, x_set_offset, x_set_window_size)
(x_make_frame_invisible): Cast 2nd arg to x_wm_set_size_hint.
(XTclear_end_of_line): Don't specify return type.
(note_mouse_highlight): Declare args x and y.
(x_icon_type): New declaration.
(flashback): Declaration deleted.
1995-05-25 15:18:16 +00:00
Karl Heuer
07a7096a4b (x_connection_closed): Unblock input, first thing.
Set Vdefault_minibuffer_frame to t
before deleting a frame that might have its own minibuffer.
1995-05-24 20:37:08 +00:00
Karl Heuer
4a4cbdd528 (x_set_offset): Add border_width when calling XMoveWindow. 1995-05-24 04:54:34 +00:00
Karl Heuer
c81412a05f (x_calc_absolute_position): Use menubar_height field.
In toolkit case, use outermost Emacs widget and its parent.
[USE_X_TOOLKIT] (x_make_frame_visible): Do call x_set_offset.
1995-05-24 04:41:16 +00:00
Karl Heuer
59e755be76 (Qvendor_specific_keysyms): New var.
(syms_of_xterm): Initialize and staticpro it.
(x_term_init): Initialize Vsystem_key_alist according to vendor.
1995-05-13 00:13:02 +00:00
Karl Heuer
10ceaf0356 (x_term_init): Add stub to initialize Vsystem_key_alist. 1995-04-29 04:17:56 +00:00
Karl Heuer
0ad5446c55 (x_term_init): If the previous kboard was the dummy one,
switch to the new one immediately.
1995-04-24 22:34:27 +00:00
Karl Heuer
0f9419350b (x_focus_frame, x_focus_event_frame, x_highlight_frame):
Delete these vars; now part of struct x_display_info.
(x_new_focus_frame): New arg DPYINFO.  Callers changed.
Use the struct members instead of the globals.
Call x_frame_rehighlight instead of XTframe_rehighlight, so we can
pass on the dpyinfo pointer.
(x_mouse_leave): New arg DPYINFO.  Callers changed.
(XTframe_rehighlight): New arg FRAME.  Callers changed.
Now does all the work in x_frame_rehighlight.
(x_frame_rehighlight): New function, code from XTframe_rehighlight.
(XTread_socket): Use the struct members instead of the globals.
(x_unfocus_frame, x_iconify_frame, x_destroy_window): Likewise.
(x_display_box_cursor, x_make_frame_invisible): Likewise.
(x_term_init): Initialize the struct members.
(x_initialize): Delete initialization of deleted globals.
1995-04-24 18:27:33 +00:00
Richard M. Stallman
2d7fc7e8f9 (x_term_init): Call XtSetLanguageProc only if HAVE_X11XTR6.
(XTread_socket): Pass dpyinfo to popup_get_selection.

(XTread_socket): For ConfigureNotify,
combine the USE_X_TOOLKIT and non-toolkit cases, which provides
some things that were missing in the former.
1995-04-14 03:58:51 +00:00
Richard M. Stallman
796e46975d (XTread_socket): Pass dpyinfo to popup_get_selection. 1995-04-11 20:33:52 +00:00
Richard M. Stallman
d806e7202a (XTread_socket): Make deiconify event only if frame was iconified. 1995-04-10 07:32:16 +00:00
Richard M. Stallman
16f60add1c (dumpglyphs): Cast FACE_DEFAULT to (XFontStruct *)
for comparison with face->font.
1995-04-07 18:33:16 +00:00
Karl Heuer
f8c25f1b67 Update copyright. 1995-04-07 02:21:52 +00:00
Karl Heuer
19126e1177 New arg DPYINFO to all callers of x_window_to_frame, x_any_window_to_frame,
and x_top_window_to_frame.
1995-04-03 23:37:17 +00:00
Karl Heuer
39f7900173 (x_delete_display): Extract kboard deletion, for modularity. 1995-03-31 03:57:05 +00:00
Karl Heuer
547d9db874 (x_term_init): Initialize cut_buffers_initialized. 1995-03-31 03:40:24 +00:00
Richard M. Stallman
1cf412ecec (XTmouse_position): New arg `insist'. 1995-03-26 21:12:11 +00:00
Karl Heuer
29b38361ea (get_perdisplay): Deleted.
(same_x_server): New function.
(x_term_init): If this display shares a keyboard with one we've
already opened, then share the structure.
(x_delete_display): Don't delete the kboard until the reference
count becomes zero.
1995-03-15 01:54:19 +00:00
Richard M. Stallman
f48f33caa6 (x_connection_closed): Ignore non-X frames.
Fix the logic for deleting frames that use separate minibuffers
that are on the dead connection.
1995-03-06 04:35:33 +00:00
Paul Reilly
5bf01b68c7 (x_bitmap_icon): Fix test for unallocated icon bitmap. 1995-02-14 21:48:14 +00:00
Richard M. Stallman
92e2441bd1 (x_display_bar_cursor): Use frame's cursor_width.
(x_connection_signal): New function.
(x_initialize): Use it as signal handler.
1995-02-14 14:22:29 +00:00
Karl Heuer
b9737ad379 [MULTI_PERDISPLAY] (x_term_init): Initialize perdisplay.
[MULTI_PERDISPLAY] (x_delete_display): Destroy perdisplay.
(x_delete_display): Use xfree, not free.
1995-02-04 00:12:17 +00:00
Richard M. Stallman
db3906fd07 (x_unqueue_events): Arg is now a Display *.
(x_start_queuing_selection_requests): Likewise.
(x_stop_queuing_selection_requests): Likewise.
1995-02-02 18:54:47 +00:00
Karl Heuer
a1b7a2ab66 [MULTI_PERDISPLAY] (get_perdisplay): Define this as an exported function. 1995-01-31 01:53:12 +00:00
Richard M. Stallman
c5acd733f2 (x_destroy_window): Don't let frame being destroyed remain in
x_focus_event_frame.
1995-01-25 00:44:32 +00:00
Richard M. Stallman
a0a7635faa Don't include param.h. 1995-01-08 20:19:47 +00:00
Richard M. Stallman
0299d313b8 (x_scroll_bar_handle_click): Use GC_WINDOWP.
(XTframe_rehighlight, x_window_to_scroll_bar): Use GC_FRAMEP.
1994-12-30 01:37:53 +00:00
Richard M. Stallman
9f67f20bf8 (XTupdate_begin): Fix backward test in previous change.
(x_display_box_cursor): Don't redraw old cursor spot in mouse face
if cursor was on a newline.

(XTread_socket): Handle button events from outside
the frame, received due to grabbing the mouse with a button.
1994-12-27 21:45:06 +00:00
Richard M. Stallman
37c2c98b16 (XTupdate_begin): Discard records of prior mouse highlight
when frame must be redrawn.

(x_make_frame_visible, x_make_frame_invisible)
(x_iconify_frame): Give error if frame has explicit_parent.
(x_new_font): Don't set window height if frame has explicit_parent.

(x_mouse_leave): New function broken out of XTread_socket.
When x_focus_event_frame is nonzero, assume that frame gets focus.
(XTread_socket): Use x_mouse_leave for LeaveNotify.
1994-12-23 05:12:32 +00:00
Karl Heuer
bddd097cb1 (XTread_socket): Generate iconify and deiconify events. 1994-11-04 04:00:50 +00:00
Karl Heuer
b30ec46658 (XTclear_end_of_line): Finish the line dance here too, just as was done in
XTwrite_glyphs.
1994-11-01 00:26:36 +00:00
Richard M. Stallman
77b686467c (fast_find_position): Special case if POS is end of buffer. 1994-11-01 00:07:34 +00:00
Richard M. Stallman
7f9c7f949a (x_delete_display): Call XrmDestroyDatabase.
(x_destroy_window): Rewrite to fetch dpyinfo just once.

[USE_X_TOOLKIT]: Make application context explicitly
and support multiple top-level shells.
(x_initialize): Call XtToolkitInitialize, XtCreateApplicationContext;
don't open display or make a shell.
(x_term_init): Call XtOpenDisplay.

(x_scroll_bar_create): Use XMapRaised directly.
(x_make_frame_visible, x_iconify_frame): Likewise.
(XMapWindow): Macro definition deleted.
(METABIT): Macro deleted.
(MAXDESC, FD_SETSIZE, FD_SET, FD_CLEAR, FD_ZERO, FD_ISSET): Likewise.
(x_id_name): Variable deleted.
1994-10-29 09:43:07 +00:00
Richard M. Stallman
7a13e8946b (x_catch_errors, x_check_errors, x_had_errors_p)
(x_uncatch_errors): Make the argument a display, not a frame.

(XTread_socket_fake_io_error): New variable.
(XTread_socket): Obey XTread_socket_fake_io_error.

(x_initialize): Init x_noop_count, x_focus_frame
and x_highlight_frame here.
(x_term_init): Not here.

(x_term_init): Open the connection first thing;
if that fails, don't allocate dpyinfo.

(x_delete_display): New function.
(x_connection_closed): New args dpyinfo and error_message.
Delete all frames on the dead display
and all frames using them for minibuffers.
Call x_delete_display.
Maybe signal a Lisp error.

(x_term_init): Don't report error here--just return 0.

(x_scroll_bar_report_motion): Store proper value in
*bar_window (the Emacs window, not the X window number).

(x_scroll_bar_report_motion): Don't clear *fp.

(x_wm_set_icon_pixmap): Use x_bitmap_pixmap.

(show_mouse_face): New arg dpyinfo.  All callers changed.
(clear_mouse_face): New arg dpyinfo.  All callers changed.

(scratch_cursor_gc): Variable deleted.
(dumpglyphs): Use scratch_cursor_gc in x_display_info.

(syms_of_xterm): Don't staticpro mouse_face_window.

(expose_all_windows, expose_all_icons): Variables deleted.
(BLOCK_INPUT_mask): Variable deleted.

(x_term_init): Set up x_id_name field.
(x_id_name): Variable deleted.

(x_font_table, x_font_table_size, x_n_fonts): Vars deleted.
(x_new_font): Use new fields.
(warp_mouse_on_deiconify): Unused variable deleted.

(x_term_init): Set up dpyinfo->xrdb.
Set up dpyinfo->vertical_scroll_bar_cursor.
(x_scroll_bar_create): Use vertical_scroll_bar_cursor slot.
(x_vertical_scroll_bar_cursor): Variable deleted.

(x_term_init): Really return dpyinfo.

(x_term_init): Call add_keyboard_wait_descriptor,
not change_keyboard_wait_descriptor.

(x_term_init): Pass new arg to init_sigio.
Don't set old_fcntl_owner.
Don't call change_input_fd.
(XTread_socket): Loop over displays and process input from each.

(x_display_name_list): New variable.
(syms_of_xterm): staticpro it.
Don't staticpro slots in the_x_screen.
(x_term_init): Update x_display_name_list along with x_display_list.
Actually malloc the x_display_info.
(the_x_screen): Variable deleted.
1994-10-26 09:26:40 +00:00
Richard M. Stallman
334208b772 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.
1994-10-22 04:34:16 +00:00
Karl Heuer
0ccf5d73ba (do_line_dance): Decrement index only once per loop. 1994-10-18 01:29:09 +00:00
Morten Welinder
87485d6fc9 *** empty log message *** 1994-10-17 08:42:36 +00:00
Richard M. Stallman
990ba8548c (dumpglyphs): Explicitly draw background stipple.
(x_bitmap_icon): Arg FILE is now a Lisp_Object.
(x_iconify_frame, x_make_frame_visible): Supply FILE arg to it.

(x_bitmap_icon): Properly discard the previous bitmap.
(x_text_icon): Discard bitmap only if we have one.
1994-10-17 07:24:58 +00:00
Richard M. Stallman
7f2ae03622 (x_bitmap_icon): Allow bitmap to come from file.
(x_wm_set_icon_pixmap): Second arg is now pixmap_id;
call x_lookup_pixmap.
(x_text_icon): Call x_destroy_bitmap.
1994-10-15 22:01:22 +00:00
Karl Heuer
58769bee4d (stuffline, scraplines): Functions deleted.
(line_dance, line_dance_len, line_dance_in_progress): New vars.
(XTins_del_lines): Don't do any X calls; just update the array.
(do_line_dance): New function.  Do the X calls here.
(XTupdate_end, XTwrite_glyphs): Call do_line_dance.
1994-10-15 04:49:14 +00:00
Richard M. Stallman
8ed24d5a14 (x_new_font): Don't keep looping after the FONT property. 1994-10-14 04:45:04 +00:00
Richard M. Stallman
bdcd49ba41 (x_term_init): Call XtSetLanguageProc or XSetLocaleModifiers.
(x_make_frame_visible, x_iconify_frame):
Call x_bitmap_icon if frame wants a bitmap icon.
1994-10-11 09:27:47 +00:00
Karl Heuer
90e1eb6f4d (construct_mouse_click): Don't use XFASTINT as an lvalue. 1994-10-04 19:48:36 +00:00
Karl Heuer
e0c1aef22b (x_new_focus_frame, construct_mouse_click, construct_menu_click,
note_mouse_highlight, XTmouse_position, x_scroll_bar_create,
x_scroll_bar_set_handle, x_scroll_bar_move, XTset_vertical_scroll_bar,
XTredeem_scroll_bar, x_scroll_bar_handle_click, x_scroll_bar_note_movement,
x_scroll_bar_report_motion, XTread_socket, x_make_frame_visible): Use new
accessor macros instead of calling XSET directly.
1994-10-04 19:46:12 +00:00
Richard M. Stallman
c0a0492738 (input_signal_count): New variable.
(XTread_socket): Increment it.
(x_make_frame_visible): Exit final loop when XTread_sockets has run.
1994-10-04 19:38:53 +00:00
Paul Reilly
a263cd2dd9 (XTread_socket): Use popup_get_selection() for X11 menubar event handling. 1994-10-02 13:37:59 +00:00
Karl Heuer
b2cad82634 (x_new_font): New rule for computing column width. Factored out common code.
(XTset_vertical_scroll_bar): Use new width formula.
[!USE_X_TOOLKIT] (x_set_window_size): Likewise.
1994-09-28 00:59:24 +00:00
Karl Heuer
9bc4522e80 (x_scroll_bar_clear): Use type test macros. 1994-09-27 00:24:27 +00:00
Richard M. Stallman
4eacadbd66 (x_destroy_window): Decrement ref count of x_screen struct. 1994-09-23 04:54:46 +00:00
Richard M. Stallman
7965883ba7 (note_mouse_highlight): Pass new arg to overlays_at. 1994-09-21 06:44:59 +00:00
Karl Heuer
480407eb72 * xterm.c (x_new_font): Compute number of scrollbar columns. 1994-09-20 05:05:02 +00:00
Karl Heuer
bde7c50060 Add #include "intervals.h" 1994-09-17 03:15:29 +00:00
Richard M. Stallman
6ccf47d10f Delete X11 conditionals.
(XTupdate_end, XTupdate_begin, XTclear_end_of_line)
(XTclear_frame, XRINGBELL, stufflines, scraplines, dumprectangle)
(XTread_socket, x_draw_box, clear_cursor, refreshicon, x_iconify_frame)
(x_bitmap_icon, x_text_icon, x_new_font, x_term_init)
(x_calc_absolute_position, x_set_window_size)
(x_make_frame_visible, x_make_frame_invisible): Delete X10 code.
(dumpqueue, x_do_pending_expose, dumpborder, XEvent, x_read_exposes)
(enqueue_event, dequeue_event, queue_event_count)
(mouse_event_pending_p, x_set_resize_hint): Delete X10 versions.
1994-09-16 09:23:15 +00:00
Richard M. Stallman
553ec0af48 Comment fix. 1994-09-10 20:06:02 +00:00
Richard M. Stallman
8b2f8d4edb (x_make_frame_visible): Call input_polling_used. 1994-09-01 20:32:44 +00:00
Richard M. Stallman
3b2fa4e69a Include keyboard.h.
(x_make_frame_visible): Fix previous change: test polling_for_input
instead of whether SIGIO is defined.
1994-08-28 19:57:51 +00:00
Karl Heuer
23cf7c602a (x_make_frame_visible): Call signal handler directly. 1994-08-26 05:18:31 +00:00
Karl Heuer
c12a7cbdbc (x_make_frame_visible): Raise a signal to cause the pending X I/O to be read. 1994-08-24 06:28:41 +00:00
Richard M. Stallman
f776546067 (x_make_frame_visible): Quit if requested, in loop at end. 1994-08-19 05:38:55 +00:00
Richard M. Stallman
d53067dc62 (x_new_font): Don't set filename = full_name if that's null. 1994-08-12 05:23:38 +00:00
Richard M. Stallman
9a5196d062 (XTread_socket): Don't test X_IO_BUG; make that code unconditional.
(x_noop_count, x_term_init): Likewise.
1994-08-08 10:13:24 +00:00
Richard M. Stallman
133bbcd690 (x_make_frame_visible): Start one_in_four at 1. 1994-08-03 23:20:26 +00:00
Richard M. Stallman
23faf38f99 (construct_mouse_click, construct_menu_click):
Don't update x_mouse_grabbed, Vmouse_depressed, last_mouse_frame here.
(XTread_socket): Update them here, so we do it without fail.
(XTmouse_position, XTread_socket case MotionNotify):
Check last_mouse_frame is nonzero before using it.
1994-08-03 07:35:50 +00:00
Richard M. Stallman
09756a8501 (x_queue_event, x_unqueue_events): New functions.
(x_start_queuing_selection_requests): New function.
(x_stop_queuing_selection_requests): New function.
(XTread_socket): Queue up SelectionRequest events sometimes.
1994-07-27 00:12:34 +00:00
Richard M. Stallman
76bcdf397d (struct font_info): New field full_name.
(x_new_font): Record, and return, the full name of the font.
1994-07-19 23:54:02 +00:00
Richard M. Stallman
847e150a18 (note_mouse_movement): Use proper data type for window
args to XQueryPointer.
(x_scroll_bar_note_movement): Likewise.
1994-07-18 18:15:06 +00:00
Richard M. Stallman
fb3b7de5e9 (XTread_socket, construct_menu_click) [USE_X_TOOLKIT]:
Update x_mouse_grabbed and Vmouse_depressed.

(x_make_frame_visible): In x_sync loop at the end,
every fourth time, sleep for 1/4 second.
1994-07-07 03:03:34 +00:00
Richard M. Stallman
2a6cf806e2 (x_draw_box): Use curs_x and curs_y, not f->cursor_[xy].
(x_make_frame_visible): In x_sync loop at the end,
every fourth time, sleep for 1/4 second.
1994-07-01 00:32:05 +00:00
Richard M. Stallman
0b6ac15043 Don't include string.h or strings.h. 1994-06-23 23:56:06 +00:00
Richard M. Stallman
6f4c2453b8 (show_mouse_face): Set endcolumn ok in side-by-side windows. 1994-06-21 17:13:39 +00:00
Richard M. Stallman
0dacf79125 (make_frame_visible): At end, wait till Emacs sees frame is visible. 1994-06-18 18:57:39 +00:00
Richard M. Stallman
11dd3d61d5 (scratch_cursor_gc): New variable.
(dumpglyphs): Rework handling of GCs for cursor display
to use scratch_cursor_gc, and reuse the GC more.
1994-06-17 13:35:53 +00:00
Richard M. Stallman
ef2a22d0bb (x_noop_count): New variable.
(x_term_init) [X_IO_BUG]: Init it.
(XTread_socket) [X_IO_BUG]: Don't do XNoOp every time, just 1 in 100.
1994-06-15 20:15:59 +00:00
Karl Heuer
becadff8d8 (x_term_init): Don't call get_system_name. 1994-06-15 04:48:02 +00:00
Richard M. Stallman
4846819e11 Put stdio.h after config.h.
(XTread_socket): Use x_top_window_to_frame in prev change.
1994-06-15 04:01:33 +00:00
Richard M. Stallman
0ab983c80f (XTread_socket): Handle Xatom_wm_save_yourself by calling XSetCommand. 1994-06-13 20:41:21 +00:00
Richard M. Stallman
75231bad05 (x_wm_set_icon_position, x_wm_set_icon_pixmap):
[USE_X_TOOLKIT]: Use top-level widget's window.
1994-06-05 18:17:53 +00:00
Richard M. Stallman
1f8255f228 (x_term_init): New args xrm_option and resource_string.
Pass an -xrm option to XtAppInitialize if appropriate.
1994-06-05 17:42:38 +00:00
Richard M. Stallman
fd13dbb227 (x_iconify_frame): Call x_set_offset,
if x_make_frame_visible would do so.
(x_make_frame_visible): Don't call x_set_offset if frame is iconic.
(XTread_socket): For ConfigureNotify, if wm decorations exist,
set NorthWestGravity.
1994-05-28 18:37:06 +00:00
Richard M. Stallman
05f6617dbf (x_is_vendor_fkey): Function deleted.
(XTread_socket, case KeyPressed): Don't clear the vendor-specific bit.
Pass thru almost any vendor-specific keysym.
1994-05-27 22:18:39 +00:00
Richard M. Stallman
27f338afea (note_mouse_movement): Use frame's window in XQueryPointer.
Special case if mouse isn't on that window.
(note_mouse_highlight): Handle negative args and too-large args.
1994-05-25 09:20:45 +00:00
Richard M. Stallman
4d73d0388d (x_set_window_size): If cursor outside new size, mark it off.
(note_mouse_highlight): Handle case of highlight extending
past end of window.
(fast_find_position): Fix bugs when no text on screen
and when the mouse is on an empty line.
1994-05-23 06:47:51 +00:00
Richard M. Stallman
546e6d5b17 (x_wm_set_window_state) [USE_X_TOOLKIT]: Use XtSetValues.
(x_iconify_frame) [USE_X_TOOLKIT]: New code for invisible window case.
(XtNinitialState) [USE_X_TOOLKIT]: New #define.
(x_make_frame_invisible): Mostly combine toolkit/non-toolkit cases,
in the process fixing a dumb bug.

(x_iconify_frame): Fix error messages.
1994-05-21 05:36:07 +00:00
Richard M. Stallman
79cf745601 (x_display_box_cursor): Preserve mouse highlight if the old cursor was in it. 1994-05-15 21:39:38 +00:00
Richard M. Stallman
9b07615b7e (XTread_socket): For button events, clear compose_status. 1994-05-14 22:17:13 +00:00
Richard M. Stallman
da893f1f84 (dumpglyphs): For cursor foreground, try the
face's background before the face's foreground.
(XTread_socket): Call note_mouse_movement for EnterNotify.
1994-05-12 08:46:03 +00:00
Richard M. Stallman
3a20653d46 (x_set_window_size) [USE_X_TOOLKIT]:
Preserve the main widget's x and y position.
1994-05-09 05:08:06 +00:00
Richard M. Stallman
3a35ab44bd (x_set_offset): Set gravity and size hint
before moving the window.

(XTread_socket): For ReparentNotify, use x_top_window_to_frame.
Also recompute frame position using x_real_positions.
For ConfigureNotify, don't ignore send_events.
Also recompute frame position using x_real_positions.
1994-05-08 21:06:13 +00:00
Richard M. Stallman
ac7ad037f7 (x_set_offset): Update XNegative and YNegative for new pos.
(x_make_frame_invisible): Use XWithdrawWindow again.
1994-05-06 00:59:24 +00:00
Karl Heuer
3b50638621 (note_mouse_highlight, show_mouse_face, clear_mouse_face, x_destroy_window):
Use row/col instead of buffer position to keep track of highlighted area.
1994-05-02 21:24:16 +00:00
Karl Heuer
55836b7371 (show_mouse_face): Fix test for cursor in highlighted area.
(note_mouse_highlight): Reorder test for simplicity.
1994-05-02 21:09:28 +00:00
Richard M. Stallman
43bca5d597 (x_calc_absolute_position): Use size_hint_flags.
New FLAGS arg deleted.  Callers changed.
1994-05-02 00:46:44 +00:00
Richard M. Stallman
20f55f9a24 (x_wm_set_size_hint): Don't try to handle negative positions.
(x_calc_absolute_position): New arg FLAGS.  Use XNegative and YNegative.
(x_set_offset): Pass new arg.
1994-05-01 23:29:27 +00:00
Richard M. Stallman
af31d76fa0 (x_wm_set_size_hint): Always set PWinGravity.
Rename the args.  Compute x and y fields from negative positions.
Use XGetWMNormalHints if X11R4 or newer.
(x_make_frame_visible): Call x_set_offset only if not USE_X_TOOLKIT.
(x_make_frame_invisible): Call x_wm_set_size_hint.
(x_set_offset): Pass 0 as 3rd arg to x_wm_set_size_hint.
(x_set_window_size): Likewise.  Set win_gravity field here if nec.
1994-04-30 00:15:20 +00:00
Richard M. Stallman
b72a58fd20 (x_wm_set_size_hint): Don't set PMaxSize.
Don't touch win_gravity field if no PWinGravity.
1994-04-29 04:04:51 +00:00
Karl Heuer
10c5e63d23 (XTread_socket): Only top window cares about LeaveNotify. 1994-04-28 07:59:17 +00:00
Richard M. Stallman
d7a38a2ed9 (x_make_frame_visible): Use XtMapWidget, not XtPopup. 1994-04-28 07:46:27 +00:00
Richard M. Stallman
0a1788157b (XTread_socket, case ClientMessage): Don't call
XSetInputFocus if event is not for an existing frame.

(XTread_socket) [USE_X_TOOLKIT]: Never pass motion events to the toolkit.
1994-04-27 08:27:00 +00:00
Richard M. Stallman
7553a6b72b (x_wm_set_size_hint): Do set max_height, max_width, and PMaxSize flag. 1994-04-27 05:03:51 +00:00
Richard M. Stallman
6ecbd1cd8b (XTread_socket) [USE_X_TOOLKIT]: Undo previous change. 1994-04-27 04:47:29 +00:00
Karl Heuer
06ef4a3f7e (XTmouse_position, XTread_socket): Don't use last_mouse_frame if it's dead. 1994-04-25 22:55:33 +00:00
Karl Heuer
983f76b88f (x_term_init): Add explicit cast. 1994-04-25 22:32:24 +00:00
Richard M. Stallman
afb66a9aa8 (XTread_socket) [USE_X_TOOLKIT]: Let toolkit handle menu bar click. 1994-04-25 22:06:13 +00:00
Richard M. Stallman
9b378208db (x_set_mouse_pixel_position): New function. 1994-04-22 21:46:12 +00:00
Richard M. Stallman
996e89cd05 (x_make_frame_visible): Args to x_set_offset were swapped. 1994-04-21 08:33:48 +00:00
Richard M. Stallman
b2bd9b6ab1 (XTread_socket): Delete the non-NEW_SELECTIONS code
and simplify the toolkit conditional for those cases.
1994-04-20 09:01:18 +00:00
Richard M. Stallman
5627c40e58 (XTread_socket, case ClientMessage): Use x_window_to_frame unconditionally.
(x_make_frame_invisible): Explicitly clear visible and
iconified flags, as well as the async flags.

(XTread_socket): Call XSetInputFocus.

(x_make_frame_invisible) [USE_X_TOOLKIT]: Use XtPopdown.
(XTread_socket): Call _XEditResCheckMessages only if HAVE_X11R5.
1994-04-20 08:51:06 +00:00
Richard M. Stallman
c2df547cfa (Xatom_editres_name): Variable defined.
(XTread_socket): Handle that kind of message.
(x_term_init): Specify -name option in XtAppInitialize.

(Qface, Qmouse_face): Supply missing Lisp_Object.
1994-04-17 23:46:08 +00:00
Richard M. Stallman
dc05a16bad (dumpglyphs): When HL=2, check explicitly for using
the frame's default font or not.

(XTread_socket): For UnmapNotify, use x_any_window_to_frame.

(x_set_offset): New arg CHANGE_GRAVITY.
(x_make_frame_visible): Pass new arg.

(x_wm_set_size_hint): Args spec_x and spec_y deleted.
(x_set_offset, x_set_window_size): Don't pass those args.

(x_destroy_window): Just clear out mouse_face... vars.

(x_wm_set_size_hint): Use win_gravity from frame.

(x_make_frame_visible): Call x_set_offset.
1994-04-17 19:30:06 +00:00
Richard M. Stallman
0134a21068 (x_make_frame_visible): Don't call XMapSubwindows.
(x_iconify_frame): Likewise.

(pending_autoraise_frame): New variable.
(x_new_focus_frame): Don't autoraise here; just set that var.
(XTread_socket): Raise that frame here.

(x_destroy_window): Call clear_mouse_face if necessary.

(x_new_font): Always call x_set_window_size.

(x_wm_set_size_hint): If PROMPTING is 0,
copy the old win_gravity field.
If USPosition is set, don't set PWinGravity.

(x_wm_set_size_hint): If change_gravity is 0, just don't set the gravity.
1994-04-14 17:31:06 +00:00
Richard M. Stallman
0cdd0c9f3e (dumpglyphs): Clear any extra pixel rows below the text.
(x_display_box_cursor): Explicitly clear full height of line.
(dumpglyphs): New arg just_foreground.  Callers changed.
(x_set_window_size): Call XSync.

(note_mouse_highlight): Do nothing if buffer has changed.
1994-04-10 06:06:51 +00:00
Richard M. Stallman
a27f9f86ef (stufflines, scraplines, dumprectangle, x_do_pending_expose)
(pixel_to_glyph_coords, x_draw_box, clear_cursor, x_display_bar_cursor)
(x_set_resize_hint, x_set_mouse_position, x_wm_set_size_hint)
(XTclear_end_of_line, redraw_previous_char): Use line_height field.

(x_new_font): If frame is new, set line_height field.
Otherwise call frame_update_line_height.
1994-04-09 06:33:24 +00:00
Fred Pierresteguy
27ead1d5eb (show_mouse_face): Change the mouse cursor accordingly. 1994-04-08 15:57:24 +00:00
Richard M. Stallman
e444162e0f (note_mouse_highlight): Temporarily widen the buffer.
(note_mouse_highlight): Check window still shows buffer that was
displayed in it.
1994-04-05 07:41:09 +00:00
Richard M. Stallman
514e46817a (note_mouse_highlight): Do nothing if gc_in_progress.
Set mouse_face_deferred_gc when that case arise.
(XTframe_up_to_date): If mouse_face_deferred_gc, redo highlighting.

(show_mouse_face): Turn off cursor only if it's
in the area being manipulated.
(XTupdate_begin): Don't turn off highlight if we aren't updating
the window that it is in.
1994-04-04 00:43:13 +00:00
Richard M. Stallman
f8bdb8e6b2 (note_mouse_highlight): Reject out-of-range pos value
before it causes an error.
1994-04-03 08:09:45 +00:00
Richard M. Stallman
bf1c0ba101 (fast_find_position): Always return coords within the window.
(note_mouse_highlight): Handle disable_mouse_highlight.
1994-04-03 02:04:04 +00:00
Fred Pierresteguy
7e4f2521a4 (x_wm_set_size_hint): Add USE_X_TOOLKIT conditional and call
XtGetValues to get the width and the height of the Emacs frame.
1994-04-01 13:53:31 +00:00
Richard M. Stallman
09fe4c319e (construct_menu_click, construct_mouse_click):
Use XSET when setting result->x and result->y.

(note_mouse_highlight): Use the value from sort_overlays.
Make the window's buffer current temporarily.
window_end_pos is relative to Z, not ZV.
1994-04-01 10:12:10 +00:00
Richard M. Stallman
b8009dd11c [INCLUDED_FCNTL]: Don't include fcntl.h again.
(XTread_socket, MotionNotify and LeaveNotify cases):
If not in any frame, call clear_mouse_face.

(x_term_init): Set frame_up_to_date_hook.
(XTframe_up_to_date): New function.

(XTupdate_begin): Turn off mouse face display, and defer it.
(XTupdate_end): Undefer.
(mouse_face_defer): New variable.
(mouse_face_mouse_frame, mouse_face_mouse_x, mouse_face_mouse_y):
New variables.

(dumpglyphs): Handle HL = 3 by using mouse_face_face_id.
(note_mouse_movement): Check for mouse face.
(show_mouse_face, fast_find_position): New functions.
(clear_mouse_face): New functions.
(mouse_face_beg, mouse_face_end, mouse_face_face_id): New variables.
(mouse_face_window): New variable.
(syms_of_xterm): Init and staticpro it.
1994-03-31 23:17:23 +00:00
Karl Heuer
af92970ca9 (x_find_modifier_meanings): Skip zero entries. 1994-03-28 23:03:07 +00:00
Karl Heuer
abdda982d7 (x_window_to_scroll_bar, x_new_font): Use assignment, not initialization. 1994-03-25 00:42:47 +00:00
Karl Heuer
6f63ba7956 (dumpglyphs): Use the fast macros. 1994-03-19 02:51:37 +00:00
Karl Heuer
fb61ec09b7 (x_scroll_bar_expose): Don't make the right border thicker. 1994-03-15 01:25:19 +00:00
Fred Pierresteguy
82aebaf480 (XTread_socket): For case ClientMessage and Xatom_wm_delete_window, use
x_any_window_to_frame.
1994-02-28 12:57:12 +00:00
Fred Pierresteguy
13ce2d73e4 (XTread_socket): For case ConfigureNotify, call x_any_window_to_frame.
[USE_X_TOOLKIT]: Call XTranslateCoordinates for case ConfigureNotify
when send_event is 0 and when the event is relative to toplevel widget.
1994-02-25 09:29:20 +00:00
Richard M. Stallman
2b5c9e71c3 (construct_mouse_click): Don't convert to glyph units.
(XTmouse_position): Don't convert to glyph units.

(XTmouse_position): Use x_any_window_to_frame.
1994-02-24 06:22:23 +00:00
Richard M. Stallman
c8dba2407c (construct_menu_click): Undo previous change. 1994-02-22 00:43:04 +00:00
Richard M. Stallman
b849c41360 (x_had_errors_p): New function.
(construct_menu_click): Convert x pos from pixels to glyphs.
Move function after pixel_to_glyph_coords.

[!USE_X_TOOLKIT] (x_any_window_to_frame):
Define as x_window_to_frame.
1994-02-21 21:54:33 +00:00
Richard M. Stallman
1dea5a8319 (XTread_socket--cases KeyPress, EnterNotify, LeaveNotify)
(cases FocusIn, FocusOut): Use x_any_window_to_frame.
1994-02-19 22:56:21 +00:00
Richard M. Stallman
df5a440b3b (dumpglyphs): Try various alternatives for foreground color
of a glyph with the cursor on it.
1994-02-18 01:01:51 +00:00
Richard M. Stallman
812361a197 Comment changes. 1994-02-17 23:33:02 +00:00
Richard M. Stallman
7071e5ddb7 (XTread_socket): Do not assume that select returning
immediately with no events implies a hangup.
1994-02-15 16:17:25 +00:00
Karl Heuer
7246d1d3aa (x_scroll_bar_create): Fix indentation. 1994-02-11 23:35:47 +00:00
Fred Pierresteguy
9d7e2e3eef (x_destroy_window) [USE_X_TOOLKIT]: Call free_frame_menubar. 1994-02-11 13:25:11 +00:00
Karl Heuer
f94397b551 (x_display_cursor, process_expose_from_menu): Block input. 1994-02-09 23:31:54 +00:00
Fred Pierresteguy
bc20ebbfef (x_make_frame_invisible): Add USE_X_TOOLKIT conditional. 1994-02-07 18:25:41 +00:00
Richard M. Stallman
502add23f1 (XTread_socket): Add X_IO_BUG conditional. 1994-02-02 23:47:57 +00:00
Karl Heuer
8c002a25f4 (x_iconify_frame): Fix misbalanced BLOCK_INPUT/UNBLOCK_INPUT. 1994-02-02 07:34:08 +00:00
Karl Heuer
8c86eccda4 (x_term_init): Use get_system_name instead of gethostname. 1994-02-02 06:32:28 +00:00
Richard M. Stallman
a07d4bc524 (dumpglyphs): Don't crash for invalid face code. 1994-02-01 06:49:18 +00:00
Fred Pierresteguy
80fd1fe20c (x_set_window_size): Add USE_X_TOOLKIT conditional. Call EmacsFrameSetCharSize and return. 1994-01-28 17:34:46 +00:00
Fred Pierresteguy
5c94b90b10 * xterm.c (x_term_init): Cast to (char **) before assignment to argv. 1994-01-28 14:28:51 +00:00
Richard M. Stallman
4466efa553 (x_set_mouse_position): Don't raise the frame. 1994-01-26 21:09:54 +00:00
Richard M. Stallman
3afe33e7ec (x_wm_set_size_hint): Swap southeast and northwest.
(XTupdate_end): No need to test updating_frame.

(construct_mouse_click): New function, in #ifdef USE_X_TOOLKIT.
(process_expose_from_menu): Likewise.
(XTread_socket, x_set_offset, x_set_window_size): Handle USE_X_TOOLKIT.
(x_raise_frame, x_lower_frame, x_make_frame_visible): Likewise.
(x_iconify_frame, x_destroy_window, x_wm_set_window_state): Likewise.
(x_term_init): Likewise.

(x_term_init): Pass argv, argc to XtAppInitialize with the display_name value.

Include syssignal.h.


The following belongs in a previous version's log entry:

(XTread_socket): temp_buffer and temp_index deleted.
Put all vendor-specific keys into the buffer.
(x_is_vendor_fkey): Function deleted.
(XTread_socket): Don't call it.
1994-01-26 05:25:06 +00:00
Richard M. Stallman
66c30ea1e4 (XTflush): FIx typo in last change. 1993-12-26 09:06:44 +00:00
Richard M. Stallman
307feb1fd5 (XTread_socket): Make proper junk values to pass to select. 1993-12-26 07:08:08 +00:00
Richard M. Stallman
ce3f43382e (XTflash): Use EMACS_GET_TIME. 1993-12-26 06:00:04 +00:00
Richard M. Stallman
6938823812 (XTread_socket): Don't offset keysym here.
Special handling for "dead accent" keysyms.

(construct_mouse_click, x_scroll_bar_handle_click)
(XTread_socket): `code' of an event is now an int.

(pixel_to_glyph_coords): New arg NOCLIP.  Callers changed.

(XTread_socket): For MotionNotify, if x_mouse_grabbed, use last_mouse_frame.
(construct_mouse_click): Set last_mouse_frame.
(XTmouse_position): If x_mouse_grabbed, use last_mouse_frame.

(x_calc_absolute_position): Borderwidth must be doubled
before subtracting from width to get correct value.
1993-12-23 00:57:11 +00:00
Richard M. Stallman
1fb20991bf (XTread_socket): Really handle Xatom_wm_window_moved events.
(XTread_socket): Generate delete_window_event's.
1993-11-24 06:39:54 +00:00
Richard M. Stallman
bf6d8fb9b1 (XTread_socket): Increase length of copy_buffer to 81. 1993-11-15 06:30:31 +00:00
Richard M. Stallman
472895ad89 (XTmouse_position): Undo roland's change.
Fix bug in bfox change.
1993-11-11 02:33:43 +00:00
Roland McGrath
e5074ca4b1 (XTmouse_position): First arg is FRAME_PTR, not FRAME_PTR *. 1993-11-10 22:56:45 +00:00
Richard M. Stallman
4dea6d905e (Tmouse_position): If the passed in frame is not an
Xwindow frame, don't do anything.
1993-11-10 20:07:07 +00:00
Richard M. Stallman
e53cb100f7 (syms_of_xterm): Initialize last_mouse_scroll_bar. 1993-11-10 06:10:27 +00:00
Richard M. Stallman
dff815ef33 (x_new_font): xmalloc arg was 1 too small. 1993-11-03 20:31:49 +00:00
Brian Fox
2554751d80 (w_wn_set_size_hint): Make recent window gravity addition
depend on "PWinGravity" begin `#defined'.
1993-09-22 18:16:37 +00:00
Roland McGrath
18160b98ce Include <config.h> instead of "config.h". 1993-09-10 06:15:46 +00:00
Richard M. Stallman
61c3ce6288 (x_term_init): Call change_keyboard_wait_descriptor,
instead of dup2.  Use the existing X desc number in fcntl calls.
(XTread_socket): Don't forget to clear out `mask'.
1993-09-08 17:53:49 +00:00
Richard M. Stallman
6dba18584c (x_wm_set_size_hint): New args spec_x and spec_y.
Set the window gravity.  All callers changed.

(XTread_socket): Make copy_buffer unsigned.

(x_calc_absolute_position): For negative coords, take
account of added width from window manager's outer window.
1993-08-14 11:00:54 +00:00
Richard M. Stallman
2224a5fc74 (struct font_info): New structure.
(x_font_table): Use struct font_info as elements.
(x_new_font): Corresponding changes.
Use XListFonts, not XListFontsWithInfo.
Use XFreeFontNames, not XFreeFontInfo.
Compare fonts by name, not by fid.
If already_loaded is 0, that counts as "yes".
1993-08-08 22:38:31 +00:00
Richard M. Stallman
b30b24cbc3 (x_term_init): Set the hooks before we call Fset_input_mode. 1993-08-06 23:37:41 +00:00
Richard M. Stallman
a9c0010533 (x_iconify_frame): Handle case where frame was invisible. 1993-07-27 08:33:44 +00:00
Richard M. Stallman
c83febd71f (redraw_previous_char): New function. 1993-07-25 21:50:16 +00:00
Richard M. Stallman
7719aa0601 (XTread_socket) [! HAVE_X11R5]:
Check for XK_Mode_switch and XK_Num_Lock, if defined.
1993-07-23 08:04:52 +00:00
Jim Blandy
041b69acff * xterm.c (x_term_init): Adjust message printed when we can't
connect to the X server.

	* xterm.c (XTread_socket, UnmapNotify case): Add missing comment
	terminator.

	* xterm.c, sysdep.c (F_SETOWN_BUG): Defined.
	* m/dpx2.h: New file.
1993-07-18 06:29:55 +00:00
Jim Blandy
6cc35d868b * xterm.c (XTread_socket): When handing non-synthetic
ConfigureNotify events, don't refer to the parent window
	descriptor.
1993-07-02 04:00:38 +00:00
Jim Blandy
b3e1e05cfe * xterm.c (frame_highlight, frame_unhighlight): Don't test
Vx_no_window_manager.  BLOCK_INPUT around the border manipulation
	calls.
1993-07-01 04:04:32 +00:00
Jim Blandy
66f55a9d0c * xterm.c (XTread_socket): Initialize event_found to zero, and
pass a zeroed timeout to select, not a null pointer; the latter
	means "wait forever".
1993-06-30 21:35:22 +00:00
Jim Blandy
c34efc6cd8 * xterm.c: Add CPP tangle from process.c to get definitions for
FD_SET, etcetera.
	(XTread_socket): Use those macros when testing for dropped connection.
1993-06-29 23:07:22 +00:00
Jim Blandy
31ea78fd30 * xterm.c (XTread_socket): Remove #if 0''s around code which tests
for dropped connection (i.e. sigio but no events).
1993-06-24 01:34:33 +00:00
Jim Blandy
28f7279833 Separate parameter faces (those created and modified by the user)
from the computed faces (the combinations created by
	compute_char_face), so that we don't waste global face id's.
	* xterm.h (struct x_display): Replace the fields faces and n_faces
	with fields param_faces, n_param_faces, computed_faces,
	n_computed_faces, and size_computed_faces.
	(FRAME_FACES, FRAME_N_FACES): Replaced by...
	(FRAME_COMPUTED_FACES, FRAME_N_COMPUTED_FACES, FRAME_PARAM_FACES,
	FRAME_N_PARAM_FACES): New macros.
	* xfaces.c: Doc fixes.
	(init_frame_faces): Call new_computed_face to create entries for
	the default and mode line faces.  Use the FRAME...PARAM_FACES
	macros.
	(free_frame_faces): Use the FRAME...PARAM_FACES and
	FRAME...COMPUTED_FACES macros.  Don't use the copy flag; all
	parameter faces have real X resources, and all computed faces just
	have copies.  Free both the parameter and computed face arrays.
	(new_computed_face): New function.
	(intern_computed_face): Renamed from intern_frame_face; callers
	changed.  Call new_computed_face.
	(ensure_face_ready, compute_char_face, compute_glyph_face): Use the
	FRAME...PARAM_FACES macros.
	(recompute_basic_faces): Use the FRAME...PARAM_FACES and
	FRAME...COMPUTED_FACES macros.  Produce the computed faces by
	starting with the base faces and merging in the parameter faces.
	(Fset_face_attribute_internal): Use the FRAME...PARAM_FACES
	macros.  Just call recompute_basic_faces if the default or mode
	line faces have changed.
	* xfns.c (Fx_list_fonts): Use the FRAME...PARAM_FACES macros.
	* xterm.c (dumpglyphs): Use the FRAME...COMPUTED_FACES macros.
	* dispextern.h (struct face): Remove the copy member.  This is no
	longer necessary; all computed faces are copies, and no parameter
	faces are.
1993-06-22 07:26:44 +00:00
Jim Blandy
64a0721980 * xterm.c (XTread_socket): Never treat a modifier key as a
non_ascii_keystroke.
1993-06-19 21:01:38 +00:00
Richard M. Stallman
1cd2d6d402 (x_connection_closed): Pass new arg to shut_down_emacs. 1993-06-13 02:06:17 +00:00
Jim Blandy
43f868f524 * xterm.c (XTset_vertical_scroll_bar): Use double type for
intermediate results in scaling.
1993-06-12 17:00:45 +00:00
Jim Blandy
e09f935147 * xterm.c (x_error_quitter, x_io_error_quitter): Remove calls to
abort.  We can always run Emacs with _Xdebug set to 1.
1993-06-12 16:52:03 +00:00
Richard M. Stallman
a135645ac2 (XTmouse_position): Don't set *f at all unless we win. 1993-06-11 23:43:54 +00:00
Jim Blandy
0c94f6ee88 * xterm.c (x_new_font): If font_names is zero, that's all the
indication we get that no matches were found.
1993-06-11 07:02:36 +00:00
Jim Blandy
eb8c3be94e Apply typo patches from Paul Eggert. 1993-06-09 11:59:12 +00:00
Jim Blandy
e4571a43ea * xterm.c (x_is_vendor_fkey): New function.
(XTread_socket): Call it to recognize vendor-specific function keys.
1993-06-09 04:56:47 +00:00
Richard M. Stallman
cef13e5501 (x_caught_error_message): Change type to char* from char*[].
(X_CAUGHT_ERROR_MESSAGE_SIZE): New macro.
(x_error_catcher): Corresponding changes.
(x_catch_errors): Corresponding changes.
(x_check_errors): Do not free x_caught_error_message.
(x_uncatch_errors): Set x_caught_error_message to 0 after freeing it.
1993-06-07 23:52:45 +00:00
Richard M. Stallman
5835f86081 (x_new_font): Don't give up right away if XListFontsWithInfo
finds no fonts--try XLoadQueryFont anyway.
1993-06-06 03:27:43 +00:00
Richard M. Stallman
60f9aad3af (x_catch_errors): Fill in missing array size in cast. 1993-06-04 00:57:45 +00:00
Richard M. Stallman
82ee0df472 (x_wm_set_size_hint): Handle XGetNormalHints returning 0. 1993-06-03 05:29:12 +00:00
Richard M. Stallman
465791dacd Comment change. 1993-05-31 21:58:25 +00:00
Richard M. Stallman
2d3682341c (XTread_socket, case KeyPress) [HPUX]: Test IsModifiedKey.
Include systty.h; don't mess with FIONREAD.
Don't include termio.h dorectly.
1993-05-31 18:33:08 +00:00
Richard M. Stallman
9319ae23ea (XTread_socket): For UnmapNotify, if frame was visible,
mark it now as iconified.
(x_make_frame_invisible): If async_iconic, work does need to be done.
Don't let this frame stay highlighted.
(x_iconify_frame): Don't let this frame stay highlighted.
1993-05-30 02:46:05 +00:00
Richard M. Stallman
8583db5803 (x_bitmap_icon): Don't free icon_bitmap;
create it if it hasn't been created before.
1993-05-30 00:55:42 +00:00
Richard M. Stallman
e08ad3fc58 (x_connection_closed): Pass new arg. 1993-05-29 20:54:27 +00:00
Jim Blandy
d065dd2e79 * sysdep.c (sys_siglist): Comment out #endif trailer.
* xmenu.c (TRUE, FALSE): Same.
	* xterm.c (dumprectangle): Same.
1993-05-29 20:49:01 +00:00
Richard M. Stallman
5a6ef893cc (XTring_bell): Do nothing if x_current_connection is 0. 1993-05-29 05:59:09 +00:00
Richard M. Stallman
c34790e0b5 (XTread_socket, case KeyPress) [HPUX]:
Recognize the extended function keys.
1993-05-28 21:13:59 +00:00
Richard M. Stallman
f7f794916d (x_wm_set_size_hint): Don't set hints for max size. 1993-05-26 20:34:20 +00:00
Jim Blandy
b5cf7a0ea5 Arrange for font names to get fully resolved - no wildcards.
* xfns.c (x_set_frame_parameters): Store the value in the frame
	parameter alist before we call the setter function, so the setter
	function can touch up the value if it chooses.
	(x_set_foreground_color, x_set_background_color): Call
	recompute_basic_faces, so their GC's will reflect the changes.
	(x_new_font): Add extern declaration - this returns a Lisp_Object
	now, the fully resolved font name.
	(x_set_font): Accept the fully resolved name from x_new_font, and
	put it in the frame's parameter alist.  Call recompute_basic_faces.
	* xterm.c (x_new_font): Return the fully resolved font name, Qnil
	(if no match), or Qt (match, but unacceptable metrics).
	* xterm.c (x_new_font): Don't call init_frame_faces.

	* xterm.h: New section for declarations for xfaces.c.
	(init_frame_faces, free_frame_faces, intern_face,
	face_name_id_number, same_size_fonts, recompute_basic_faces,
	compute_char_face, compute_glyph_face): Declare these here.
	* xfaces.c (same_size_fonts): We can now remove this extern
	declaration.
	* xfns.c (face_name_id_number): Likewise.
	* xterm.c (intern_face): Likewise.

	* xterm.c (dumpglyphs): Remember that the default faces can have
	null fonts, too.
1993-05-25 14:04:12 +00:00
Jim Blandy
f126bd6787 * xfaces.c (merge_faces): You can't tell if a font is a
character-cell font or not by testing whether or not it has a
	per_char table.  They all do.
	* xterm.c (x_new_font): Same deal.
1993-05-25 07:03:38 +00:00
Richard M. Stallman
3bd330d47a (XTread_socket, ConfigureNotify case):
Convert from parent window, not Emacs window.
(XTread_socket): Handle ReparentNotify events.

(XTread_socket): For ConfigureNotify event,
translate coordinates if send_event field is false
provided the x-coord value is not large.
1993-05-25 01:00:21 +00:00
Richard M. Stallman
af395ec10e (XTread_socket): For ConfigureNotify event,
translate coordinates if send_event field is false
provided the x-coord value is not large.
1993-05-24 19:54:15 +00:00
Jim Blandy
9696f58be7 * xterm.c (x_new_font): Reject fonts with varying spacing. We
don't support them yet.
	* xfns.c (x_set_font): Report the error message properly.
1993-05-24 15:04:07 +00:00
Jim Blandy
559cb2fbad * xterm.c (x_scroll_bar_report_motion): Set *TIME whether or not
the mouse is over a scroll bar.
1993-05-23 20:04:26 +00:00
Richard M. Stallman
039440c43e Move signal.h and stdio.h before config.h. 1993-05-23 18:09:41 +00:00
Jim Blandy
5116f055a5 * xterm.c (x_scroll_bar_handle_click): Never grab the scroll bar;
that feature requires more support to work correctly.

	Update copyright years.
1993-05-22 20:57:31 +00:00
Jim Blandy
929787e104 * xterm.c (x_scroll_bar_handle_click): Never grab the scroll bar;
that feature requires more support to work correctly.
1993-05-22 09:13:57 +00:00
Richard M. Stallman
148c4b70c2 (x_find_modifier_meanings): If some keys are meta and alt,
make them just meta, not alt.
1993-05-20 13:43:48 +00:00
Jim Blandy
decb54c690 * xterm.c (x_new_font): Tell the frame display faces about the
newly chosen font.
1993-05-19 03:06:38 +00:00
Jim Blandy
752a043ffa * xterm.c (XTread_socket): Turn off ControlMask for XLookupString.
* keyboard.c (make_lispy_event): Controlify here.
1993-05-19 00:33:58 +00:00
Richard M. Stallman
b73b6aaf28 (dumpglyphs): Create a temporary merged gc
when cursor falls on char with non-default face.
1993-05-16 22:32:36 +00:00
Jim Blandy
4a4dc352d5 * xterm.c (dumpglyphs): Give the cursor higher priority than the
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.
1993-05-14 14:44:26 +00:00
Jim Blandy
07e34cb0a9 * xdisp.c (display_text_line): Apply faces to characters
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.
1993-05-10 00:26:32 +00:00
Jim Blandy
dfeccd2d13 Implement extra_keyboard_modifiers properly.
* 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.
1993-05-04 02:44:42 +00:00
Richard M. Stallman
987d2ad1db Fix typo in comment delimiter. 1993-04-07 20:04:50 +00:00
Jim Blandy
d0386f2a50 * xterm.c (updating_frame): Declare this extern instead of static,
so it's the same variable as the updating_frame in term.c.
	(XTupdate_begin, XTupdate_end): Don't bother to set
	updating_frame; the term.c functions take care of that for us.
1993-04-07 14:57:22 +00:00
Jim Blandy
9ac0d9e041 Put interrupt input blocking in a separate file from xterm.h.
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.
1993-03-31 10:55:33 +00:00
Jim Blandy
febf25d56f * xterm.c [VMS]: Don't #include <sys/termio.h> and <string.h>. 1993-03-25 02:11:11 +00:00
Jim Blandy
a4fc736006 * xterm.c (x_term_init): If the X connection is already in file
descriptor zero, don't dup it and close the old one.
1993-03-20 21:07:59 +00:00
Jim Blandy
59653951e7 * emacs.c (Finvocation_name): New function.
(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.
1993-03-20 19:30:58 +00:00
Jim Blandy
49d838ea4a * xterm.c (x_display_box_cursor, x_display_bar_cursor): Don't
display the cursor on garbaged frames.
1993-03-17 20:11:00 +00:00
Richard M. Stallman
d56a553a20 (Xatom_wm_change_state): Define here.
(XTread_socket): Handle NEW_SELECTIONS alternative:
queue events for SelectionRequest and SelectionClear;
call functions for SelectionNotify and PropertyNotify.
1993-03-15 06:04:31 +00:00
Jim Blandy
9658a5216e * xterm.c (x_find_modifier_meanings): XDisplayKeycodes only
appeared in X11R4; for earlier versions, just access the members
	of the Display directly.
1993-03-11 07:19:36 +00:00
Richard M. Stallman
10e6549c5f (XTread_socket):
Don't reverse the chars that XLookupString returns.  Use all of them.
Save last 100 chars and keysyms in temp_buffer.
1993-03-08 05:38:53 +00:00
Richard M. Stallman
a3c44b1451 (x_alt_mod_mask, x_super_mod_mask, x_hyper_mod_mask): New variables.
(x_find_modifier_meanings): Set them.
(x_convert_modifiers): Check for them.
(XTread_socket): Handle BackSpace, etc, function keys.
1993-03-07 09:30:31 +00:00
Richard M. Stallman
80ec1ba2eb (XTread_socket): Set bufp->modifiers for all kinds of keys. 1993-03-05 23:56:13 +00:00
Jim Blandy
ab6482702d Use the term scroll bar', instead of scrollbar'.
* 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.
1993-03-02 08:21:49 +00:00
Jim Blandy
b10fd412fc * xterm.c (XTread_socket): Pass the proper number of arguments to
construct_mouse_click.
1993-02-22 15:10:46 +00:00
Jim Blandy
8922af5f60 * xterm.c (x_set_window_size): Call change_frame_size instead of
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.
1993-02-14 14:40:55 +00:00
Richard M. Stallman
64bb1782c4 (XTread_socket): Support extra_keyboard_modifiers. 1993-02-07 00:30:36 +00:00
Jim Blandy
dbc4e1c129 JimB's changes since January 18th 1993-01-26 01:58:16 +00:00
Jim Blandy
c0ff3fabb8 * xterm.c (x_scrollbar_create): Set the scrollbars to use
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.
1993-01-22 02:47:12 +00:00
Jim Blandy
cf7cb199e5 * xterm.c (x_window_to_scrollbar): Search frames'
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.
1993-01-16 05:58:15 +00:00
Jim Blandy
9a572e2a2a * xterm.c (x_scrollbar_create): Include PointerMotionHintMask in
the event mask for scrollbars.
1993-01-14 17:31:56 +00:00
Jim Blandy
12ba150f2f Make scrollbar structures into lisp objects, so that they can be
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.
1993-01-14 15:34:14 +00:00
Jim Blandy
e33981b69d Small changes to keep people from running Emacs under X. 1993-01-07 02:49:15 +00:00
Jim Blandy
f451eb1325 * frame.h (struct frame): New fields `can_have_scrollbars' and
`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.
1992-12-24 06:21:14 +00:00
Jim Blandy
3a88c23802 * xterm.c (XTread_socket): When we get MapNotify, UnmapNotify,
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.
1992-12-06 22:22:09 +00:00
Jim Blandy
7c5283e4d7 * xterm.c (x_convert_modifiers): Declare this to return an
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
1992-10-31 05:43:00 +00:00
Jim Blandy
11edeb0334 * xterm.c (compose_status): New variable.
(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.
1992-10-19 18:31:34 +00:00
Jim Blandy
54c908b57c * xterm.c, xrdb.c: #include <stdio.h> before "xterm.h", to avoid
warnings about redefining NULL under GCC 2.2.2.
1992-10-11 06:44:42 +00:00
Jim Blandy
f689eb05f4 * xterm.c (x_find_modifier_meanings): If there are no
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.
1992-10-03 05:10:14 +00:00
Jim Blandy
28430d3c3b * xterm.c (x_meta_mod_mask): New variable, indicating which X
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.
1992-09-30 11:57:51 +00:00
Jim Blandy
b0342f1711 * xterm.c (x_wm_set_size_hint): Set the base_width and base_height
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.
1992-09-13 12:54:09 +00:00
Jim Blandy
d872b7483c * 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.
1992-09-04 11:17:33 +00:00
Jim Blandy
c118dd0617 * xterm.c (x_make_frame_invisible): Don't forget to check the
return value of XWithdrawWindow; it could indicate that the window
	wasn't successfully redrawn.

        * xterm.c (x_make_frame_invisible): Use XWithdrawWindow when
	available [HAVE_X11R4]; send the UnmapNotify event when
	appropriate [HAVE_X11]; just unmap the window if that's all that's
	needed [not HAVE_X11].

	* xterm.c (x_set_text_property): Removed; it's only called from
	one place.  Who wants *another* layer of indirection?

	* xterm.c: Use the FRAME_X_WINDOW macro, for readability.

	* xterm.c (x_death_handler): Renamed to x_connection_closed.
	(x_term_init): Use x_connection_closed as the SIGPIPE handler.

	* xterm.c (acceptable_x_error_p, x_handler_error_gracefully,
	x_error_handler): Removed; you can't catch X errors this way,
	since you can't perform X operations from within an X error
	handler, and even though we call error, we're still within an X
	error handler.
	(x_error_quitter, x_error_catcher): New functions, for panicking
	on and catching X protocol errors.
	(x_caught_error_message): Buffer for caught X errors.
	(x_catch_errors, x_check_errors, x_uncatch_errors): New functions
	for catching errors.
	(x_term_init): Set the error handler to x_error_quitter, rather
	than x_error_handler.

	* xterm.c (x_death_handler): Renamed to x_connection_closed.
	(x_term_init): Use x_connection_closed as the SIGPIPE handler.

	* xterm.c (acceptable_x_error_p, x_handler_error_gracefully,
	x_error_handler): Removed; you can't catch X errors this way,
	since you can't perform X operations from within an X error
	handler, and even though we call error, we're still within an X
	error handler.
	(x_error_quitter, x_error_catcher): New functions, for panicking
	on and catching X protocol errors.
	(x_caught_error_message): Buffer for caught X errors.
	(x_catch_errors, x_check_errors, x_uncatch_errors): New functions
	for catching errors.
	(x_term_init): Set the error handler to x_error_quitter, rather
	than x_error_handler.
1992-08-29 03:31:07 +00:00
Jim Blandy
16bd92ea65 * xterm.c (x_wm_hints): Variable deleted. This has to be
per-screen.  Duh.
	* xterm.c (x_wm_set_window_state, x_wm_set_icon_pixmap,
	x_wm_set_icon_position): Use F->display.x->wm_hints, rather than
	x_wm_hints.
	(x_term_init): Don't initialize x_wm_hints here.
	* xterm.c (x_set_text_property): Properly balance the BLOCK_INPUTs
	and UNBLOCK_INPUTs.  And remember that VALUE is the strin we want
	to set the name to, not PROPERTY.

	* xterm.c (x_set_text_property): Define this appropriately for
	X11R3 and X11R4.

	* xterm.c (x_set_text_property): Make this take a Lisp_Object
	string as an argument, rather than a pointer and a length.

	* xterm.c: Doc fixes.

	* xterm.c [USG5]: Don't include <sys/types.h>.

	* xterm.c (x_make_frame_invisible): Instead of calling XWithdraw
	window, which isn't widely available, write out what it does,
	since that's not much.
	(x_iconify_frame): Explicitly perform both the X11R3 and X11R4
	methods for iconification; don't use XIconifyWindow, since that's
	not present in R3.

	* xterm.c (x_wm_set_size_hint): Don't bother setting the
	base_width and base_height members; their function is performed
	just as well by the min_width and min_height members, and if we
	use XSetNormalHints instead of XSetWMNormalHints, we can be
	compatible with R3.

	* xterm.c (x_error_handler): There is no way to invoke the default
	error handler which works on all versions of X11, so don't bother;
	call XGetErrorText and print the message ourselves.

	* xterm.c (x_term_init): Don't use MAXHOSTNAMELEN; this isn't
	defined on all systems.  Since we only use that as an initial
	guess anyway, it's not very important.

	* xterm.c (x_set_text_property): New function.
1992-08-19 06:51:44 +00:00
Jim Blandy
b1c884c393 * xterm.c (x_wm_hints): New variable.
(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.

	* xterm.c (x_text_icon): Call x_wm_set_icon_pixmap with a pixmap
	of zero, to clear the pixmap.
	(x_wm_set_icon_pixmap): Accept this protocol; if pixmap is zero,
	specify no pixmap for the icon.

	* xterm.c (x_set_window_size): Call check_frame_size to make sure
	that the requested dimensions are within acceptable limits.
	Store the new size information in the frame structure.

	* xterm.c (x_wm_set_size_hint): Don't try to set the base_height
	and base_width elements of size_hints if PBaseSize is not
	#defined.  Set the minimum frame size according to the information
	returned by check_frame_size.

	* xterm.c (XTread_socket, x_do_pending_expose): Call
	change_frame_size with a DELAY of 1.

	* xterm.c (in_display): Deleted this; it's never used in xterm.c,
	and there is another variable by the same name in dispnew.c.

	* xterm.c (FRAME_IS_TERMCAP, FRAME_IS_X, FRAME_HAS_MINIBUF):
	Renamed these to FRAME_TERMCAP_P, FRAME_X_P, and
	FRAME_HAS_MINIBUF_P, for consistency with the rest of the
	frame macros.
1992-08-12 14:40:00 +00:00
Jim Blandy
4357eba769 entered into RCS 1992-07-15 20:52:46 +00:00
Jim Blandy
f676886a9e *** empty log message *** 1992-07-14 16:25:43 +00:00
Jim Blandy
06b1a5ef11 *** empty log message *** 1992-07-10 02:33:41 +00:00