Mercurial > emacs
view src/dispextern.h @ 1052:b8defcaf1b61
* 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.
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Sat, 29 Aug 1992 03:31:07 +0000 |
parents | bb24f1180bb6 |
children | 7fd1c810daca |
line wrap: on
line source
/* Interface definitions for display code. Copyright (C) 1985, 1992 Free Software Foundation, Inc. This file is part of GNU Emacs. GNU Emacs is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Emacs is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Emacs; see the file COPYING. If not, write to the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */ /* Nonzero means don't assume anything about current contents of actual terminal frame */ extern int frame_garbaged; /* Nonzero means last display completed and cursor is really at cursX, cursY. Zero means it was preempted. */ extern int display_completed; #ifdef HAVE_X_WINDOWS struct run { int begin_run; int len; int face_code; /* Also handles underlining. */ }; #endif /* This structure is used for the actual display of text on a frame. There are two instantiations of it: the glyphs currently displayed, and the glyphs we desire to display. The latter object is generated from buffers being displayed. */ struct frame_glyphs { #ifdef MULTI_FRAME struct frame *frame; /* Frame these glyphs belong to. */ #endif /* MULTI_FRAME */ int height; int width; /* Contents of the frame. glyphs[V][H] is the glyph at position V, H. Note that glyphs[V][-1], glyphs[V][used[V]], and glyphs[V][frame_width] are always '\0'. */ GLYPH **glyphs; /* long vector from which the strings in `glyphs' are taken. */ GLYPH *total_contents; /* When representing a desired frame, enable[n] == 0 means that line n is same as current frame. When representing current frame contents, enable[n] == 0 means that line n is blank. */ char *enable; /* Everything on line n after column used[n] is considered blank. */ int *used; /* highlight[n] != 0 iff line n is highlighted. */ char *highlight; /* Buffer offset of this line's first char. */ int *bufp; #ifdef HAVE_X_WINDOWS int *nruns; /* N runs of differently displayed text. */ struct run **face_list; short *top_left_x; /* Pixel position of top left corner */ short *top_left_y; short *pix_width; /* Pixel width of line. */ short *pix_height; /* Pixel height of line. */ #endif /* HAVE_X_WINDOWS */ }; #if 0 #define LINE_HEIGHT(s,n) (current_glyphs->pix_height[n]) #define LINE_WIDTH(s,n) (current_glyphs->pix_width[n]) #endif #define LINE_HEIGHT(s,n) (FONT_HEIGHT((s)->display.x->font)) #define LINE_WIDTH(s,n) (FONT_HEIGHT((s)->display.x->font) \ * FRAME_CURRENT_GLYPHS(s)->enable[(n)]) extern void get_display_line ();