comparison src/buffer.c @ 25491:0359edc6e428

(set_buffer_internal): Never set windows_or_buffers_changed.
author Gerd Moellmann <gerd@gnu.org>
date Thu, 02 Sep 1999 20:35:53 +0000
parents f9949db6ca7d
children b65b5bdae65a
comparison
equal deleted inserted replaced
25490:af3e44ec3b8c 25491:0359edc6e428
1428 register Lisp_Object buf; 1428 register Lisp_Object buf;
1429 XSETBUFFER (buf, current_buffer); 1429 XSETBUFFER (buf, current_buffer);
1430 return buf; 1430 return buf;
1431 } 1431 }
1432 1432
1433 /* Set the current buffer to B. */ 1433 /* Set the current buffer to B.
1434
1435 We previously set windows_or_buffers_changed here to invalidate
1436 global unchanged information in beg_unchanged and end_unchanged.
1437 This is no longer necessary because we now compute unchanged
1438 information on a buffer-basis. Every action affecting other
1439 windows than the selected one requires a select_window at some
1440 time, and that increments windows_or_buffers_changed. */
1434 1441
1435 void 1442 void
1436 set_buffer_internal (b) 1443 set_buffer_internal (b)
1437 register struct buffer *b; 1444 register struct buffer *b;
1438 { 1445 {
1439 if (current_buffer != b) 1446 if (current_buffer != b)
1440 { 1447 set_buffer_internal_1 (b);
1441 /* Set windows_or_buffers_changed only if buffer is displayed
1442 somewhere. This enables redisplay optimizations if a
1443 background task like deferred fontification changes buffers,
1444 but none that are currently displayed. */
1445 if (!windows_or_buffers_changed
1446 && selected_frame)
1447 {
1448 Lisp_Object buffer;
1449 XSETBUFFER (buffer, b);
1450 if (!NILP (Fget_buffer_window (buffer, Qvisible)))
1451 ++windows_or_buffers_changed;
1452 }
1453
1454 set_buffer_internal_1 (b);
1455 }
1456 } 1448 }
1457 1449
1458 /* Set the current buffer to B, and do not set windows_or_buffers_changed. 1450 /* Set the current buffer to B, and do not set windows_or_buffers_changed.
1459 This is used by redisplay. */ 1451 This is used by redisplay. */
1460 1452