diff options
| author | Jim Blandy | 1993-01-22 02:45:16 +0000 |
|---|---|---|
| committer | Jim Blandy | 1993-01-22 02:45:16 +0000 |
| commit | 8678b9ccf53e6e6e05af74b748e25e4dc55b84f2 (patch) | |
| tree | 67c41071d3ef5d78b59efe3be276639d7c69f1e8 /src | |
| parent | 0f6b9c324b62c759df945ad51d506c68fa0019d2 (diff) | |
| download | emacs-8678b9ccf53e6e6e05af74b748e25e4dc55b84f2.tar.gz emacs-8678b9ccf53e6e6e05af74b748e25e4dc55b84f2.zip | |
* 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.
* 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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/frame.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/src/frame.c b/src/frame.c index e393e597e0a..7184c20b797 100644 --- a/src/frame.c +++ b/src/frame.c | |||
| @@ -593,7 +593,6 @@ A frame may not be deleted if its minibuffer is used by other frames.") | |||
| 593 | Lisp_Object frame; | 593 | Lisp_Object frame; |
| 594 | { | 594 | { |
| 595 | struct frame *f; | 595 | struct frame *f; |
| 596 | union display displ; | ||
| 597 | 596 | ||
| 598 | if (EQ (frame, Qnil)) | 597 | if (EQ (frame, Qnil)) |
| 599 | { | 598 | { |
| @@ -654,14 +653,19 @@ A frame may not be deleted if its minibuffer is used by other frames.") | |||
| 654 | 653 | ||
| 655 | Vframe_list = Fdelq (frame, Vframe_list); | 654 | Vframe_list = Fdelq (frame, Vframe_list); |
| 656 | FRAME_SET_VISIBLE (f, 0); | 655 | FRAME_SET_VISIBLE (f, 0); |
| 657 | displ = f->display; | ||
| 658 | f->display.nothing = 0; | ||
| 659 | 656 | ||
| 657 | /* Since some events are handled at the interrupt level, we may get | ||
| 658 | an event for f at any time; if we zero out the frame's display | ||
| 659 | now, then we may trip up the event-handling code. Instead, we'll | ||
| 660 | promise that the display of the frame must be valid until we have | ||
| 661 | called the window-system-dependent frame destruction routine. */ | ||
| 660 | #ifdef HAVE_X_WINDOWS | 662 | #ifdef HAVE_X_WINDOWS |
| 661 | if (FRAME_X_P (f)) | 663 | if (FRAME_X_P (f)) |
| 662 | x_destroy_window (f, displ); | 664 | x_destroy_window (f); |
| 663 | #endif | 665 | #endif |
| 664 | 666 | ||
| 667 | f->display.nothing = 0; | ||
| 668 | |||
| 665 | /* If we've deleted the last_nonminibuf_frame, then try to find | 669 | /* If we've deleted the last_nonminibuf_frame, then try to find |
| 666 | another one. */ | 670 | another one. */ |
| 667 | if (f == last_nonminibuf_frame) | 671 | if (f == last_nonminibuf_frame) |