aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorGerd Moellmann2000-12-22 10:51:42 +0000
committerGerd Moellmann2000-12-22 10:51:42 +0000
commit951f9df51744ddbdcb961e4c5e155068c7f2ec6f (patch)
tree4ce22e460640b30965ac787f99bf1eba7ddf0732 /src
parent74dd1b0dd819a067606e9d169dcc630c1da48ca6 (diff)
downloademacs-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/ChangeLog8
-rw-r--r--src/window.c18
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 @@
12000-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
12000-12-22 Kenichi Handa <handa@etl.go.jp> 92000-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;