diff options
| author | Gerd Moellmann | 2000-12-22 10:51:42 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2000-12-22 10:51:42 +0000 |
| commit | 951f9df51744ddbdcb961e4c5e155068c7f2ec6f (patch) | |
| tree | 4ce22e460640b30965ac787f99bf1eba7ddf0732 /src | |
| parent | 74dd1b0dd819a067606e9d169dcc630c1da48ca6 (diff) | |
| download | emacs-951f9df51744ddbdcb961e4c5e155068c7f2ec6f.tar.gz emacs-951f9df51744ddbdcb961e4c5e155068c7f2ec6f.zip | |
(delete_window): Simplify somewhat.
(Fset_window_configuration): Don't SET_FRAME_GARBAGED after
freeing window matrices. The flag windows_or_buffers_changed is
set, so the next redisplay will consider all windows; this should
suffice.
Diffstat (limited to 'src')
| -rw-r--r-- | src/ChangeLog | 8 | ||||
| -rw-r--r-- | src/window.c | 18 |
2 files changed, 16 insertions, 10 deletions
diff --git a/src/ChangeLog b/src/ChangeLog index ed4eb942ae6..75e6de5fd33 100644 --- a/src/ChangeLog +++ b/src/ChangeLog | |||
| @@ -1,3 +1,11 @@ | |||
| 1 | 2000-12-22 Gerd Moellmann <gerd@gnu.org> | ||
| 2 | |||
| 3 | * window.c (delete_window): Simplify somewhat. | ||
| 4 | (Fset_window_configuration): Don't SET_FRAME_GARBAGED after | ||
| 5 | freeing window matrices. The flag windows_or_buffers_changed is | ||
| 6 | set, so the next redisplay will consider all windows; this should | ||
| 7 | suffice. | ||
| 8 | |||
| 1 | 2000-12-22 Kenichi Handa <handa@etl.go.jp> | 9 | 2000-12-22 Kenichi Handa <handa@etl.go.jp> |
| 2 | 10 | ||
| 3 | * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed. | 11 | * coding.c (ccl_coding_driver): Initialize ccl->cr_consumed. |
diff --git a/src/window.c b/src/window.c index 68409fad9de..2fcf4b97dcd 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -1164,7 +1164,7 @@ delete_window (window) | |||
| 1164 | register Lisp_Object tem, parent, sib; | 1164 | register Lisp_Object tem, parent, sib; |
| 1165 | register struct window *p; | 1165 | register struct window *p; |
| 1166 | register struct window *par; | 1166 | register struct window *par; |
| 1167 | FRAME_PTR frame; | 1167 | struct frame *f; |
| 1168 | 1168 | ||
| 1169 | /* Because this function is called by other C code on non-leaf | 1169 | /* Because this function is called by other C code on non-leaf |
| 1170 | windows, the CHECK_LIVE_WINDOW macro would choke inappropriately, | 1170 | windows, the CHECK_LIVE_WINDOW macro would choke inappropriately, |
| @@ -1188,18 +1188,17 @@ delete_window (window) | |||
| 1188 | 1188 | ||
| 1189 | windows_or_buffers_changed++; | 1189 | windows_or_buffers_changed++; |
| 1190 | Vwindow_list = Qnil; | 1190 | Vwindow_list = Qnil; |
| 1191 | frame = XFRAME (WINDOW_FRAME (p)); | 1191 | f = XFRAME (WINDOW_FRAME (p)); |
| 1192 | FRAME_WINDOW_SIZES_CHANGED (frame) = 1; | 1192 | FRAME_WINDOW_SIZES_CHANGED (f) = 1; |
| 1193 | 1193 | ||
| 1194 | /* Are we trying to delete any frame's selected window? */ | 1194 | /* Are we trying to delete any frame's selected window? */ |
| 1195 | { | 1195 | { |
| 1196 | Lisp_Object frame, pwindow; | 1196 | Lisp_Object pwindow; |
| 1197 | 1197 | ||
| 1198 | /* See if the frame's selected window is either WINDOW | 1198 | /* See if the frame's selected window is either WINDOW |
| 1199 | or any subwindow of it, by finding all that window's parents | 1199 | or any subwindow of it, by finding all that window's parents |
| 1200 | and comparing each one with WINDOW. */ | 1200 | and comparing each one with WINDOW. */ |
| 1201 | frame = WINDOW_FRAME (XWINDOW (window)); | 1201 | pwindow = FRAME_SELECTED_WINDOW (f); |
| 1202 | pwindow = FRAME_SELECTED_WINDOW (XFRAME (frame)); | ||
| 1203 | 1202 | ||
| 1204 | while (!NILP (pwindow)) | 1203 | while (!NILP (pwindow)) |
| 1205 | { | 1204 | { |
| @@ -1221,7 +1220,7 @@ delete_window (window) | |||
| 1221 | if (EQ (window, selected_window)) | 1220 | if (EQ (window, selected_window)) |
| 1222 | Fselect_window (alternative); | 1221 | Fselect_window (alternative); |
| 1223 | else | 1222 | else |
| 1224 | FRAME_SELECTED_WINDOW (XFRAME (frame)) = alternative; | 1223 | FRAME_SELECTED_WINDOW (f) = alternative; |
| 1225 | } | 1224 | } |
| 1226 | } | 1225 | } |
| 1227 | 1226 | ||
| @@ -1240,7 +1239,7 @@ delete_window (window) | |||
| 1240 | events and other events that access glyph matrices are not | 1239 | events and other events that access glyph matrices are not |
| 1241 | processed while we are changing them. */ | 1240 | processed while we are changing them. */ |
| 1242 | BLOCK_INPUT; | 1241 | BLOCK_INPUT; |
| 1243 | free_window_matrices (XWINDOW (FRAME_ROOT_WINDOW (frame))); | 1242 | free_window_matrices (XWINDOW (FRAME_ROOT_WINDOW (f))); |
| 1244 | 1243 | ||
| 1245 | tem = p->next; | 1244 | tem = p->next; |
| 1246 | if (!NILP (tem)) | 1245 | if (!NILP (tem)) |
| @@ -1297,7 +1296,7 @@ delete_window (window) | |||
| 1297 | p->buffer = p->hchild = p->vchild = Qnil; | 1296 | p->buffer = p->hchild = p->vchild = Qnil; |
| 1298 | 1297 | ||
| 1299 | /* Adjust glyph matrices. */ | 1298 | /* Adjust glyph matrices. */ |
| 1300 | adjust_glyphs (frame); | 1299 | adjust_glyphs (f); |
| 1301 | UNBLOCK_INPUT; | 1300 | UNBLOCK_INPUT; |
| 1302 | } | 1301 | } |
| 1303 | 1302 | ||
| @@ -4931,7 +4930,6 @@ the return value is nil. Otherwise the value is t.") | |||
| 4931 | xassert (NILP (leaf_windows[i]->hchild) | 4930 | xassert (NILP (leaf_windows[i]->hchild) |
| 4932 | && NILP (leaf_windows[i]->vchild)); | 4931 | && NILP (leaf_windows[i]->vchild)); |
| 4933 | free_window_matrices (leaf_windows[i]); | 4932 | free_window_matrices (leaf_windows[i]); |
| 4934 | SET_FRAME_GARBAGED (f); | ||
| 4935 | } | 4933 | } |
| 4936 | else if (EQ (leaf_windows[i]->buffer, new_current_buffer)) | 4934 | else if (EQ (leaf_windows[i]->buffer, new_current_buffer)) |
| 4937 | ++n; | 4935 | ++n; |