52 |
+---------------------------------+ |
+---------------------------------+ |
53 |
| | |
| | |
54 |
| V |
| V |
55 |
+--------------+ redisplay() +----------------+ |
+--------------+ redisplay +----------------+ |
56 |
| Lisp machine |---------------->| Redisplay code |<--+ |
| Lisp machine |---------------->| Redisplay code |<--+ |
57 |
+--------------+ (xdisp.c) +----------------+ | |
+--------------+ (xdisp.c) +----------------+ | |
58 |
^ | | |
^ | | |
593 |
|
|
594 |
Lisp_Object Vresize_mini_windows; |
Lisp_Object Vresize_mini_windows; |
595 |
|
|
596 |
|
/* Buffer being redisplayed -- for redisplay_window_error. */ |
597 |
|
|
598 |
|
struct buffer *displayed_buffer; |
599 |
|
|
600 |
/* Value returned from text property handlers (see below). */ |
/* Value returned from text property handlers (see below). */ |
601 |
|
|
602 |
enum prop_handled |
enum prop_handled |
737 |
static int echo_area_display P_ ((int)); |
static int echo_area_display P_ ((int)); |
738 |
static void redisplay_windows P_ ((Lisp_Object)); |
static void redisplay_windows P_ ((Lisp_Object)); |
739 |
static void redisplay_window P_ ((Lisp_Object, int)); |
static void redisplay_window P_ ((Lisp_Object, int)); |
740 |
|
static Lisp_Object redisplay_window_error (); |
741 |
|
static Lisp_Object redisplay_window_0 P_ ((Lisp_Object)); |
742 |
|
static Lisp_Object redisplay_window_1 P_ ((Lisp_Object)); |
743 |
static void update_menu_bar P_ ((struct frame *, int)); |
static void update_menu_bar P_ ((struct frame *, int)); |
744 |
static int try_window_reusing_current_matrix P_ ((struct window *)); |
static int try_window_reusing_current_matrix P_ ((struct window *)); |
745 |
static int try_window_id P_ ((struct window *)); |
static int try_window_id P_ ((struct window *)); |
8890 |
Lisp_Object mini_window; |
Lisp_Object mini_window; |
8891 |
struct frame *mini_frame; |
struct frame *mini_frame; |
8892 |
|
|
8893 |
redisplay_window (selected_window, 1); |
displayed_buffer = XBUFFER (XWINDOW (selected_window)->buffer); |
8894 |
|
internal_condition_case_1 (redisplay_window_1, selected_window, Qerror, |
8895 |
|
redisplay_window_error); |
8896 |
|
|
8897 |
/* Compare desired and current matrices, perform output. */ |
/* Compare desired and current matrices, perform output. */ |
8898 |
update: |
update: |
9228 |
else if (!NILP (w->vchild)) |
else if (!NILP (w->vchild)) |
9229 |
redisplay_windows (w->vchild); |
redisplay_windows (w->vchild); |
9230 |
else |
else |
9231 |
redisplay_window (window, 0); |
{ |
9232 |
|
displayed_buffer = XBUFFER (w->buffer); |
9233 |
|
internal_condition_case_1 (redisplay_window_0, window, Qerror, |
9234 |
|
redisplay_window_error); |
9235 |
|
} |
9236 |
|
|
9237 |
window = w->next; |
window = w->next; |
9238 |
} |
} |
9239 |
} |
} |
9240 |
|
|
9241 |
|
static Lisp_Object |
9242 |
|
redisplay_window_error () |
9243 |
|
{ |
9244 |
|
displayed_buffer->display_error_modiff = BUF_MODIFF (displayed_buffer); |
9245 |
|
return Qnil; |
9246 |
|
} |
9247 |
|
|
9248 |
|
static Lisp_Object |
9249 |
|
redisplay_window_0 (window) |
9250 |
|
Lisp_Object window; |
9251 |
|
{ |
9252 |
|
if (displayed_buffer->display_error_modiff < BUF_MODIFF (displayed_buffer)) |
9253 |
|
redisplay_window (window, 0); |
9254 |
|
return Qnil; |
9255 |
|
} |
9256 |
|
|
9257 |
|
static Lisp_Object |
9258 |
|
redisplay_window_1 (window) |
9259 |
|
Lisp_Object window; |
9260 |
|
{ |
9261 |
|
if (displayed_buffer->display_error_modiff < BUF_MODIFF (displayed_buffer)) |
9262 |
|
redisplay_window (window, 1); |
9263 |
|
return Qnil; |
9264 |
|
} |
9265 |
|
|
9266 |
/* Set cursor position of W. PT is assumed to be displayed in ROW. |
/* Set cursor position of W. PT is assumed to be displayed in ROW. |
9267 |
DELTA is the number of bytes by which positions recorded in ROW |
DELTA is the number of bytes by which positions recorded in ROW |
9268 |
differ from current buffer positions. */ |
differ from current buffer positions. */ |