aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorRichard M. Stallman1997-07-07 02:39:39 +0000
committerRichard M. Stallman1997-07-07 02:39:39 +0000
commit11c52c4f41bc4a4fb31a1cd79274ff11c3fd8e7a (patch)
tree8f394dbfdf0ed172b84e1a747d5bbcc8975ab27d /src
parentbeacaab334c21bbf0e15ccd8af4e870414c88ee5 (diff)
downloademacs-11c52c4f41bc4a4fb31a1cd79274ff11c3fd8e7a.tar.gz
emacs-11c52c4f41bc4a4fb31a1cd79274ff11c3fd8e7a.zip
(display_menu_bar): Always pass W to display_string.
(redisplay_internal): At the end, if more frames have become visible, repeat the redisplay. (decode_mode_spec): Don't display subprocess coding systems. Don't display EOL for keyboard and terminal coding systems.
Diffstat (limited to 'src')
-rw-r--r--src/xdisp.c37
1 files changed, 34 insertions, 3 deletions
diff --git a/src/xdisp.c b/src/xdisp.c
index 5b51a25475f..221d603a7a3 100644
--- a/src/xdisp.c
+++ b/src/xdisp.c
@@ -864,6 +864,7 @@ redisplay_internal (preserve_echo_area)
864 int all_windows; 864 int all_windows;
865 register int tlbufpos, tlendpos; 865 register int tlbufpos, tlendpos;
866 struct position pos; 866 struct position pos;
867 int number_of_frames_redisplayed;
867 868
868 if (noninteractive) 869 if (noninteractive)
869 return; 870 return;
@@ -888,12 +889,14 @@ redisplay_internal (preserve_echo_area)
888 Do this before checking for resized or garbaged frames; they want 889 Do this before checking for resized or garbaged frames; they want
889 to know if their frames are visible. 890 to know if their frames are visible.
890 See the comment in frame.h for FRAME_SAMPLE_VISIBILITY. */ 891 See the comment in frame.h for FRAME_SAMPLE_VISIBILITY. */
892 number_of_frames_redisplayed = 0;
891 { 893 {
892 Lisp_Object tail, frame; 894 Lisp_Object tail, frame;
893 895
894 FOR_EACH_FRAME (tail, frame) 896 FOR_EACH_FRAME (tail, frame)
895 { 897 {
896 FRAME_SAMPLE_VISIBILITY (XFRAME (frame)); 898 FRAME_SAMPLE_VISIBILITY (XFRAME (frame));
899 number_of_frames_redisplayed++;
897 900
898 /* Clear out all the display lines in which we will generate the 901 /* Clear out all the display lines in which we will generate the
899 glyphs to display. */ 902 glyphs to display. */
@@ -1304,6 +1307,30 @@ update:
1304 request_sigio (); 1307 request_sigio ();
1305 start_polling (); 1308 start_polling ();
1306 1309
1310 /* If something has become visible now which was not before,
1311 redisplay again, so that we get them. */
1312 if (!pause)
1313 {
1314 Lisp_Object tail, frame;
1315 int new_count = 0;
1316
1317 FOR_EACH_FRAME (tail, frame)
1318 {
1319 int this_is_visible = 0;
1320 if (XFRAME (frame)->visible)
1321 this_is_visible = 1;
1322 FRAME_SAMPLE_VISIBILITY (XFRAME (frame));
1323 if (XFRAME (frame)->visible)
1324 this_is_visible = 1;
1325
1326 if (this_is_visible)
1327 new_count++;
1328 }
1329
1330 if (new_count != number_of_frames_redisplayed)
1331 windows_or_buffers_changed++;
1332 }
1333
1307 /* Change frame size now if a change is pending. */ 1334 /* Change frame size now if a change is pending. */
1308 do_pending_window_change (); 1335 do_pending_window_change ();
1309 1336
@@ -3670,7 +3697,7 @@ display_menu_bar (w)
3670 XSETFASTINT (XVECTOR (items)->contents[i + 3], hpos); 3697 XSETFASTINT (XVECTOR (items)->contents[i + 3], hpos);
3671 3698
3672 if (hpos < maxendcol) 3699 if (hpos < maxendcol)
3673 hpos = display_string (XWINDOW (FRAME_ROOT_WINDOW (f)), vpos, 3700 hpos = display_string (w, vpos,
3674 XSTRING (string)->data, 3701 XSTRING (string)->data,
3675 XSTRING (string)->size, 3702 XSTRING (string)->size,
3676 hpos, 0, 0, hpos, maxendcol); 3703 hpos, 0, 0, hpos, maxendcol);
@@ -4405,9 +4432,12 @@ decode_mode_spec (w, c, spec_width, maxwidth)
4405 decode_mode_spec_buf, eol_flag); 4432 decode_mode_spec_buf, eol_flag);
4406 if (FRAME_TERMCAP_P (f)) 4433 if (FRAME_TERMCAP_P (f))
4407 { 4434 {
4408 p = decode_mode_spec_coding (keyboard_coding.symbol, p, eol_flag); 4435 /* No need to mention EOL here--the terminal never needs
4409 p = decode_mode_spec_coding (terminal_coding.symbol, p, eol_flag); 4436 to do EOL conversion. */
4437 p = decode_mode_spec_coding (keyboard_coding.symbol, p, 0);
4438 p = decode_mode_spec_coding (terminal_coding.symbol, p, 0);
4410 } 4439 }
4440#if 0 /* This proves to be annoying; I think we can do without. -- rms. */
4411#ifdef subprocesses 4441#ifdef subprocesses
4412 obj = Fget_buffer_process (Fcurrent_buffer ()); 4442 obj = Fget_buffer_process (Fcurrent_buffer ());
4413 if (PROCESSP (obj)) 4443 if (PROCESSP (obj))
@@ -4418,6 +4448,7 @@ decode_mode_spec (w, c, spec_width, maxwidth)
4418 p, eol_flag); 4448 p, eol_flag);
4419 } 4449 }
4420#endif /* subprocesses */ 4450#endif /* subprocesses */
4451#endif /* 0 */
4421 *p = 0; 4452 *p = 0;
4422 return decode_mode_spec_buf; 4453 return decode_mode_spec_buf;
4423 } 4454 }