diff options
Diffstat (limited to 'src/xterm.c')
-rw-r--r-- | src/xterm.c | 62 |
1 files changed, 44 insertions, 18 deletions
diff --git a/src/xterm.c b/src/xterm.c index 52cb889d4c7..4afe386d39a 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -86,6 +86,7 @@ Boston, MA 02111-1307, USA. */ #include "window.h" #include "keyboard.h" #include "intervals.h" +#include "process.h" #ifdef USE_X_TOOLKIT #include <X11/Shell.h> @@ -147,7 +148,7 @@ Lisp_Object x_display_name_list; is the frame to apply to. */ extern struct frame *updating_frame; -extern waiting_for_input; +extern int waiting_for_input; /* This is a frame waiting to be autoraised, within XTread_socket. */ struct frame *pending_autoraise_frame; @@ -265,8 +266,8 @@ static void clear_mouse_face (); static void show_mouse_face (); static void do_line_dance (); -static int XTcursor_to (); -static int XTclear_end_of_line (); +static void XTcursor_to (); +static void XTclear_end_of_line (); static int x_io_error_quitter (); int x_catch_errors (); void x_uncatch_errors (); @@ -323,7 +324,7 @@ x_display_info_for_display (dpy) should never be called except during an update, the only exceptions being XTcursor_to, XTwrite_glyphs and XTreassert_line_highlight. */ -static +static void XTupdate_begin (f) struct frame *f; { @@ -383,7 +384,7 @@ XTupdate_begin (f) UNBLOCK_INPUT; } -static +static void XTupdate_end (f) struct frame *f; { @@ -413,7 +414,7 @@ XTupdate_end (f) /* This is called after a redisplay on frame F. */ -static +static void XTframe_up_to_date (f) FRAME_PTR f; { @@ -434,6 +435,7 @@ XTframe_up_to_date (f) Call this when about to modify line at position VPOS and not change whether it is highlighted. */ +void XTreassert_line_highlight (new, vpos) int new, vpos; { @@ -443,7 +445,7 @@ XTreassert_line_highlight (new, vpos) /* Call this when about to modify line at position VPOS and change whether it is highlighted. */ -static +static void XTchange_line_highlight (new_highlight, vpos, first_unused_hpos) int new_highlight, vpos, first_unused_hpos; { @@ -456,7 +458,7 @@ XTchange_line_highlight (new_highlight, vpos, first_unused_hpos) When starting Emacs, no X window is mapped. And nothing must be done to Emacs's own window if it is suspended (though that rarely happens). */ -static +static void XTset_terminal_modes () { } @@ -465,7 +467,7 @@ XTset_terminal_modes () Exiting will make the X-windows go away, and suspending requires no action. */ -static +static void XTreset_terminal_modes () { /* XTclear_frame (); */ @@ -475,7 +477,7 @@ XTreset_terminal_modes () This is where display update commands will take effect. This does not affect the place where the cursor-box is displayed. */ -static int +static void XTcursor_to (row, col) register int row, col; { @@ -1184,7 +1186,7 @@ dumpglyphs (f, left, top, gp, n, hl, font) `highlight', set up by XTreassert_line_highlight or XTchange_line_highlight, controls the pixel values used for foreground and background. */ -static +static void XTwrite_glyphs (start, len) register GLYPH *start; int len; @@ -1230,7 +1232,7 @@ XTwrite_glyphs (start, len) to column FIRST_UNUSED (exclusive). The idea is that everything from FIRST_UNUSED onward is already erased. */ -static +static void XTclear_end_of_line (first_unused) register int first_unused; { @@ -1272,7 +1274,7 @@ XTclear_end_of_line (first_unused) UNBLOCK_INPUT; } -static +static void XTclear_frame () { int mask; @@ -1508,6 +1510,7 @@ timeval_subtract (result, x, y) return x.tv_sec < y.tv_sec; } +void XTflash (f) struct frame *f; { @@ -1635,6 +1638,7 @@ XTflash (f) #define XRINGBELL XBell (FRAME_X_DISPLAY (selected_frame), 0) +void XTring_bell () { if (FRAME_X_DISPLAY (selected_frame) == 0) @@ -1657,7 +1661,7 @@ XTring_bell () These are not supposed to be used because we are supposed to turn off the feature of using them. */ -static +static void XTinsert_glyphs (start, len) register char *start; register int len; @@ -1665,7 +1669,7 @@ XTinsert_glyphs (start, len) abort (); } -static +static void XTdelete_glyphs (n) register int n; { @@ -1677,7 +1681,7 @@ XTdelete_glyphs (n) This, and those operations, are used only within an update that is bounded by calls to XTupdate_begin and XTupdate_end. */ -static +static void XTset_terminal_window (n) register int n; { @@ -1708,6 +1712,7 @@ static int line_dance_in_progress; /* Perform an insert-lines or delete-lines operation, inserting N lines or deleting -N lines at vertical position VPOS. */ +void XTins_del_lines (vpos, n) int vpos, n; { @@ -2693,6 +2698,7 @@ clear_mouse_face (dpyinfo) /* Just discard the mouse face information for frame F, if any. This is used when the size of F is changed. */ +void cancel_mouse_face (f) FRAME_PTR f; { @@ -3560,6 +3566,7 @@ x_scroll_bar_report_motion (fp, bar_window, part, x, y, time) Clear out the scroll bars, and ask for expose events, so we can redraw them. */ +void x_scroll_bar_clear (f) FRAME_PTR f; { @@ -3959,7 +3966,7 @@ XTread_socket (sd, bufp, numchars, expected) if (! x_window_to_frame (dpyinfo, event.xselection.requestor)) goto OTHER; #endif /* not USE_X_TOOLKIT */ - x_handle_selection_notify (&event); + x_handle_selection_notify (&event.xselection); break; case SelectionClear: /* Someone has grabbed ownership. */ @@ -4020,7 +4027,7 @@ XTread_socket (sd, bufp, numchars, expected) if (!x_any_window_to_frame (dpyinfo, event.xproperty.window)) goto OTHER; #endif /* not USE_X_TOOLKIT */ - x_handle_property_notify (&event); + x_handle_property_notify (&event.xproperty); break; case ReparentNotify: @@ -4896,6 +4903,7 @@ x_display_box_cursor (f, on, x, y) /* Display the cursor on frame F, or clear it, according to ON. Also set the frame's cursor position to X and Y. */ +void x_display_cursor (f, on, x, y) struct frame *f; int on; @@ -4921,6 +4929,7 @@ x_display_cursor (f, on, x, y) /* Display the cursor on frame F, or clear it, according to ON. Don't change the cursor's position. */ +void x_update_cursor (f, on) struct frame *f; int on; @@ -4943,6 +4952,7 @@ x_update_cursor (f, on) /* Refresh bitmap kitchen sink icon for frame F when we get an expose event for it. */ +void refreshicon (f) struct frame *f; { @@ -5390,6 +5400,7 @@ x_new_fontset (f, fontsetname) /* Calculate the absolute position in frame F from its current recorded position values and gravity. */ +void x_calc_absolute_position (f) struct frame *f; { @@ -5482,6 +5493,7 @@ x_calc_absolute_position (f) position values). It is -1 when calling from x_set_frame_parameters, which means, do adjust for borders but don't change the gravity. */ +void x_set_offset (f, xoff, yoff, change_gravity) struct frame *f; register int xoff, yoff; @@ -5533,6 +5545,7 @@ x_set_offset (f, xoff, yoff, change_gravity) for this size change and subsequent size changes. Otherwise we leave the window gravity unchanged. */ +void x_set_window_size (f, change_gravity, cols, rows) struct frame *f; int change_gravity; @@ -5659,6 +5672,7 @@ x_set_mouse_pixel_position (f, pix_x, pix_y) /* focus shifting, raising and lowering. */ +void x_focus_on_frame (f) struct frame *f; { @@ -5674,6 +5688,7 @@ x_focus_on_frame (f) #endif /* ! 0 */ } +void x_unfocus_frame (f) struct frame *f; { @@ -5687,6 +5702,7 @@ x_unfocus_frame (f) /* Raise frame F. */ +void x_raise_frame (f) struct frame *f; { @@ -5705,6 +5721,7 @@ x_raise_frame (f) /* Lower frame F. */ +void x_lower_frame (f) struct frame *f; { @@ -5741,6 +5758,7 @@ XTframe_raise_lower (f, raise_flag) but it will become visible later when the window manager finishes with it. */ +void x_make_frame_visible (f) struct frame *f; { @@ -5869,6 +5887,7 @@ x_make_frame_visible (f) /* Make the frame visible (mapped and not iconified). */ +void x_make_frame_invisible (f) struct frame *f; { @@ -5951,6 +5970,7 @@ x_make_frame_invisible (f) /* Change window state from mapped to iconified. */ +void x_iconify_frame (f) struct frame *f; { @@ -6059,6 +6079,7 @@ x_iconify_frame (f) /* Destroy the X window of frame F. */ +void x_destroy_window (f) struct frame *f; { @@ -6130,6 +6151,7 @@ x_destroy_window (f) If USER_POSITION is nonzero, we set the USPosition flag (this is useful when FLAGS is 0). */ +void x_wm_set_size_hint (f, flags, user_position) struct frame *f; long flags; @@ -6273,6 +6295,7 @@ x_wm_set_size_hint (f, flags, user_position) } /* Used for IconicState or NormalState */ +void x_wm_set_window_state (f, state) struct frame *f; int state; @@ -6292,6 +6315,7 @@ x_wm_set_window_state (f, state) #endif /* not USE_X_TOOLKIT */ } +void x_wm_set_icon_pixmap (f, pixmap_id) struct frame *f; int pixmap_id; @@ -6341,6 +6365,7 @@ x_wm_set_icon_pixmap (f, pixmap_id) #endif /* not USE_X_TOOLKIT */ } +void x_wm_set_icon_position (f, icon_x, icon_y) struct frame *f; int icon_x, icon_y; @@ -7161,6 +7186,7 @@ x_delete_display (dpyinfo) /* Set up use of X before we make the first connection. */ +void x_initialize () { clear_frame_hook = XTclear_frame; |