aboutsummaryrefslogtreecommitdiffstats
path: root/src/window.c
diff options
context:
space:
mode:
authorJim Blandy1992-07-14 15:21:18 +0000
committerJim Blandy1992-07-14 15:21:18 +0000
commit44fa5b1e24d7722ef58d51b3d9fc12ed2b9696fc (patch)
tree9488c9e6ef13c2c26eb13b42b16acbfd14d0ff92 /src/window.c
parentbe14d3120a2502e5f06ef905f3b3e40a62c08d15 (diff)
downloademacs-44fa5b1e24d7722ef58d51b3d9fc12ed2b9696fc.tar.gz
emacs-44fa5b1e24d7722ef58d51b3d9fc12ed2b9696fc.zip
*** empty log message ***
Diffstat (limited to 'src/window.c')
-rw-r--r--src/window.c494
1 files changed, 247 insertions, 247 deletions
diff --git a/src/window.c b/src/window.c
index 20281235dac..3b2c123a6ae 100644
--- a/src/window.c
+++ b/src/window.c
@@ -21,7 +21,7 @@ the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. */
21#include "config.h" 21#include "config.h"
22#include "lisp.h" 22#include "lisp.h"
23#include "buffer.h" 23#include "buffer.h"
24#include "screen.h" 24#include "frame.h"
25#include "window.h" 25#include "window.h"
26#include "commands.h" 26#include "commands.h"
27#include "indent.h" 27#include "indent.h"
@@ -43,11 +43,11 @@ static struct window *decode_window();
43 the top level editing loop at the end of each command. 43 the top level editing loop at the end of each command.
44 44
45 This value is always the same as 45 This value is always the same as
46 SCREEN_SELECTED_WINDOW (selected_screen). */ 46 FRAME_SELECTED_WINDOW (selected_frame). */
47 47
48Lisp_Object selected_window; 48Lisp_Object selected_window;
49 49
50/* The minibuffer window of the selected screen. 50/* The minibuffer window of the selected frame.
51 Note that you cannot test for minibufferness of an arbitrary window 51 Note that you cannot test for minibufferness of an arbitrary window
52 by comparing against this; but you can test for minibufferness of 52 by comparing against this; but you can test for minibufferness of
53 the selected window. */ 53 the selected window. */
@@ -76,11 +76,11 @@ int window_min_width;
76/* Nonzero implies Fdisplay_buffer should create windows. */ 76/* Nonzero implies Fdisplay_buffer should create windows. */
77int pop_up_windows; 77int pop_up_windows;
78 78
79/* Nonzero implies make new X screens for Fdisplay_buffer. */ 79/* Nonzero implies make new frames for Fdisplay_buffer. */
80int pop_up_screens; 80int pop_up_frames;
81 81
82/* Non-nil means use this function instead of default */ 82/* Non-nil means use this function instead of default */
83Lisp_Object Vpop_up_screen_function; 83Lisp_Object Vpop_up_frame_function;
84 84
85/* Function to call to handle Fdisplay_buffer. */ 85/* Function to call to handle Fdisplay_buffer. */
86Lisp_Object Vdisplay_buffer_function; 86Lisp_Object Vdisplay_buffer_function;
@@ -128,7 +128,7 @@ make_window ()
128 p->start = Fmake_marker (); 128 p->start = Fmake_marker ();
129 p->pointm = Fmake_marker (); 129 p->pointm = Fmake_marker ();
130 XFASTINT (p->use_time) = 0; 130 XFASTINT (p->use_time) = 0;
131 p->screen = Qnil; 131 p->frame = Qnil;
132 p->display_table = Qnil; 132 p->display_table = Qnil;
133 p->dedicated = Qnil; 133 p->dedicated = Qnil;
134 return val; 134 return val;
@@ -145,9 +145,9 @@ DEFUN ("minibuffer-window", Fminibuffer_window, Sminibuffer_window, 0, 0, 0,
145 "Return the window used now for minibuffers.") 145 "Return the window used now for minibuffers.")
146 () 146 ()
147{ 147{
148#ifdef MULTI_SCREEN 148#ifdef MULTI_FRAME
149 choose_minibuf_screen (); 149 choose_minibuf_frame ();
150#endif /* MULTI_SCREEN */ 150#endif /* MULTI_FRAME */
151 return minibuf_window; 151 return minibuf_window;
152} 152}
153 153
@@ -162,7 +162,7 @@ DEFUN ("window-minibuffer-p", Fwindow_minibuffer_p, Swindow_minibuffer_p, 1, 1,
162 162
163DEFUN ("pos-visible-in-window-p", Fpos_visible_in_window_p, 163DEFUN ("pos-visible-in-window-p", Fpos_visible_in_window_p,
164 Spos_visible_in_window_p, 0, 2, 0, 164 Spos_visible_in_window_p, 0, 2, 0,
165 "Return t if position POS is currently on the screen in WINDOW.\n\ 165 "Return t if position POS is currently on the frame in WINDOW.\n\
166Returns nil if that position is scrolled vertically out of view.\n\ 166Returns nil if that position is scrolled vertically out of view.\n\
167POS defaults to point; WINDOW, to the selected window.") 167POS defaults to point; WINDOW, to the selected window.")
168 (pos, window) 168 (pos, window)
@@ -198,7 +198,7 @@ POS defaults to point; WINDOW, to the selected window.")
198 buf = XBUFFER (w->buffer); 198 buf = XBUFFER (w->buffer);
199 if (XFASTINT (w->last_modified) >= BUF_MODIFF (buf)) 199 if (XFASTINT (w->last_modified) >= BUF_MODIFF (buf))
200 { 200 {
201 /* If screen is up to date, 201 /* If frame is up to date,
202 use the info recorded about how much text fit on it. */ 202 use the info recorded about how much text fit on it. */
203 if (posint < BUF_Z (buf) - XFASTINT (w->window_end_pos) 203 if (posint < BUF_Z (buf) - XFASTINT (w->window_end_pos)
204 || (XFASTINT (w->window_end_vpos) < height)) 204 || (XFASTINT (w->window_end_vpos) < height))
@@ -214,7 +214,7 @@ POS defaults to point; WINDOW, to the selected window.")
214 posval = *compute_motion (top, 0, 0, posint, height, 0, 214 posval = *compute_motion (top, 0, 0, posint, height, 0,
215 XFASTINT (w->width) - 1 215 XFASTINT (w->width) - 1
216 - (XFASTINT (w->width) + XFASTINT (w->left) 216 - (XFASTINT (w->width) + XFASTINT (w->left)
217 != SCREEN_WIDTH (XSCREEN (w->screen))), 217 != FRAME_WIDTH (XFRAME (w->frame))),
218 XINT (w->hscroll), 0); 218 XINT (w->hscroll), 0);
219 219
220 return posval.vpos < height ? Qt : Qnil; 220 return posval.vpos < height ? Qt : Qnil;
@@ -258,7 +258,7 @@ DEFUN ("window-width", Fwindow_width, Swindow_width, 0, 1, 0,
258 258
259 /* If this window does not end at the right margin, 259 /* If this window does not end at the right margin,
260 must deduct one column for the border */ 260 must deduct one column for the border */
261 if ((width + w->left) == SCREEN_WIDTH (XSCREEN (WINDOW_SCREEN (w)))) 261 if ((width + w->left) == FRAME_WIDTH (XFRAME (WINDOW_FRAME (w))))
262 return width; 262 return width;
263 return width - 1; 263 return width - 1;
264} 264}
@@ -292,7 +292,7 @@ NCOL should be zero or positive.")
292 292
293DEFUN ("window-edges", Fwindow_edges, Swindow_edges, 0, 1, 0, 293DEFUN ("window-edges", Fwindow_edges, Swindow_edges, 0, 1, 0,
294 "Return a list of the edge coordinates of WINDOW.\n\ 294 "Return a list of the edge coordinates of WINDOW.\n\
295\(LEFT TOP RIGHT BOTTOM), all relative to 0, 0 at top left corner of screen.\n\ 295\(LEFT TOP RIGHT BOTTOM), all relative to 0, 0 at top left corner of frame.\n\
296RIGHT is one more than the rightmost column used by WINDOW,\n\ 296RIGHT is one more than the rightmost column used by WINDOW,\n\
297and BOTTOM is one more than the bottommost row used by WINDOW\n\ 297and BOTTOM is one more than the bottommost row used by WINDOW\n\
298 and its mode-line.") 298 and its mode-line.")
@@ -338,7 +338,7 @@ coordinates_in_window (w, x, y)
338 338
339 /* Is the character in the right border? */ 339 /* Is the character in the right border? */
340 if (*x == left + width - 1 340 if (*x == left + width - 1
341 && left + width != SCREEN_WIDTH (XSCREEN (w->screen))) 341 && left + width != FRAME_WIDTH (XFRAME (w->frame)))
342 return 3; 342 return 3;
343 343
344 *x -= left; 344 *x -= left;
@@ -350,9 +350,9 @@ DEFUN ("coordinates-in-window-p", Fcoordinates_in_window_p,
350 Scoordinates_in_window_p, 2, 2, 0, 350 Scoordinates_in_window_p, 2, 2, 0,
351 "Return non-nil if COORDINATES are in WINDOW.\n\ 351 "Return non-nil if COORDINATES are in WINDOW.\n\
352COORDINATES is a cons of the form (X . Y), X and Y being distances\n\ 352COORDINATES is a cons of the form (X . Y), X and Y being distances\n\
353measured in characters from the upper-left corner of the screen.\n\ 353measured in characters from the upper-left corner of the frame.\n\
354(0 . 0) denotes the character in the upper left corner of the\n\ 354(0 . 0) denotes the character in the upper left corner of the\n\
355screen.\n\ 355frame.\n\
356If COORDINATES are in the text portion of WINDOW,\n\ 356If COORDINATES are in the text portion of WINDOW,\n\
357 the coordinates relative to the window are returned.\n\ 357 the coordinates relative to the window are returned.\n\
358If they are in the mode line of WINDOW, `mode-line' is returned.\n\ 358If they are in the mode line of WINDOW, `mode-line' is returned.\n\
@@ -393,14 +393,14 @@ If they are on the border between WINDOW and its right sibling,\n\
393 right sibling, set it to 2; otherwise set it to 0. If there is no 393 right sibling, set it to 2; otherwise set it to 0. If there is no
394 window under x, y return nil and leave *part unmodified. */ 394 window under x, y return nil and leave *part unmodified. */
395Lisp_Object 395Lisp_Object
396window_from_coordinates (screen, x, y, part) 396window_from_coordinates (frame, x, y, part)
397 SCREEN_PTR screen; 397 FRAME_PTR frame;
398 int x, y; 398 int x, y;
399 int *part; 399 int *part;
400{ 400{
401 register Lisp_Object tem, first; 401 register Lisp_Object tem, first;
402 402
403 tem = first = SCREEN_SELECTED_WINDOW (screen); 403 tem = first = FRAME_SELECTED_WINDOW (frame);
404 404
405 do 405 do
406 { 406 {
@@ -420,23 +420,23 @@ window_from_coordinates (screen, x, y, part)
420} 420}
421 421
422DEFUN ("window-at", Fwindow_at, Swindow_at, 2, 3, 0, 422DEFUN ("window-at", Fwindow_at, Swindow_at, 2, 3, 0,
423 "Return window containing row ROW, column COLUMN on SCREEN.\n\ 423 "Return window containing row ROW, column COLUMN on FRAME.\n\
424If omitted, SCREEN defaults to the currently selected screen.\n\ 424If omitted, FRAME defaults to the currently selected frame.\n\
425The top left corner of the screen is considered to be row 0,\n\ 425The top left corner of the frame is considered to be row 0,\n\
426column 0.") 426column 0.")
427 (row, column, screen) 427 (row, column, frame)
428 Lisp_Object row, column, screen; 428 Lisp_Object row, column, frame;
429{ 429{
430 int part; 430 int part;
431 431
432 if (NILP (screen)) 432 if (NILP (frame))
433 XSET (screen, Lisp_Screen, selected_screen); 433 XSET (frame, Lisp_Frame, selected_frame);
434 else 434 else
435 CHECK_LIVE_SCREEN (screen, 2); 435 CHECK_LIVE_FRAME (frame, 2);
436 CHECK_NUMBER (row, 0); 436 CHECK_NUMBER (row, 0);
437 CHECK_NUMBER (column, 1); 437 CHECK_NUMBER (column, 1);
438 438
439 return window_from_coordinates (XSCREEN (screen), 439 return window_from_coordinates (XFRAME (frame),
440 XINT (row), XINT (column), 440 XINT (row), XINT (column),
441 &part); 441 &part);
442} 442}
@@ -631,11 +631,11 @@ replace_window (old, replacement)
631 register Lisp_Object tem; 631 register Lisp_Object tem;
632 register struct window *o = XWINDOW (old), *p = XWINDOW (replacement); 632 register struct window *o = XWINDOW (old), *p = XWINDOW (replacement);
633 633
634 /* If OLD is its screen's root_window, then replacement is the new 634 /* If OLD is its frame's root_window, then replacement is the new
635 root_window for that screen. */ 635 root_window for that frame. */
636 636
637 if (old == SCREEN_ROOT_WINDOW (XSCREEN (o->screen))) 637 if (old == FRAME_ROOT_WINDOW (XFRAME (o->frame)))
638 SCREEN_ROOT_WINDOW (XSCREEN (o->screen)) = replacement; 638 FRAME_ROOT_WINDOW (XFRAME (o->frame)) = replacement;
639 639
640 p->left = o->left; 640 p->left = o->left;
641 p->top = o->top; 641 p->top = o->top;
@@ -748,7 +748,7 @@ DEFUN ("delete-window", Fdelete_window, Sdelete_window, 0, 1, "",
748} 748}
749 749
750 750
751extern Lisp_Object next_screen (), prev_screen (); 751extern Lisp_Object next_frame (), prev_frame ();
752 752
753DEFUN ("next-window", Fnext_window, Snext_window, 0, 3, 0, 753DEFUN ("next-window", Fnext_window, Snext_window, 0, 3, 0,
754 "Return next window after WINDOW in canonical ordering of windows.\n\ 754 "Return next window after WINDOW in canonical ordering of windows.\n\
@@ -759,17 +759,17 @@ if not active. MINIBUF nil or omitted means count the minibuffer iff\n\
759it is active. MINIBUF neither t nor nil means not to count the\n\ 759it is active. MINIBUF neither t nor nil means not to count the\n\
760minibuffer even if it is active.\n\ 760minibuffer even if it is active.\n\
761\n\ 761\n\
762Several screens may share a single minibuffer; if the minibuffer\n\ 762Several frames may share a single minibuffer; if the minibuffer\n\
763counts, all windows on all screens that share that minibuffer count\n\ 763counts, all windows on all frames that share that minibuffer count\n\
764too. This means that next-window may be used to iterate through the\n\ 764too. This means that next-window may be used to iterate through the\n\
765set of windows even when the minibuffer is on another screen. If the\n\ 765set of windows even when the minibuffer is on another frame. If the\n\
766minibuffer does not count, only windows from WINDOW's screen count.\n\ 766minibuffer does not count, only windows from WINDOW's frame count.\n\
767\n\ 767\n\
768Optional third arg ALL-SCREENS t means include windows on all screens.\n\ 768Optional third arg ALL-FRAMES t means include windows on all frames.\n\
769ALL-SCREENS nil or omitted means cycle within the screens as specified\n\ 769ALL-FRAMES nil or omitted means cycle within the frames as specified\n\
770above. If neither nil nor t, restrict to WINDOW's screen.") 770above. If neither nil nor t, restrict to WINDOW's frame.")
771 (window, minibuf, all_screens) 771 (window, minibuf, all_frames)
772 register Lisp_Object window, minibuf, all_screens; 772 register Lisp_Object window, minibuf, all_frames;
773{ 773{
774 register Lisp_Object tem; 774 register Lisp_Object tem;
775 Lisp_Object start_window; 775 Lisp_Object start_window;
@@ -786,17 +786,17 @@ above. If neither nil nor t, restrict to WINDOW's screen.")
786 if (NILP (minibuf)) 786 if (NILP (minibuf))
787 minibuf = (minibuf_level ? Qt : Qlambda); 787 minibuf = (minibuf_level ? Qt : Qlambda);
788 788
789 /* all_screens == nil doesn't specify which screens to include. 789 /* all_frames == nil doesn't specify which frames to include.
790 Decide which screens it includes. */ 790 Decide which frames it includes. */
791 if (NILP (all_screens)) 791 if (NILP (all_frames))
792 all_screens = (EQ (minibuf, Qt) 792 all_frames = (EQ (minibuf, Qt)
793 ? (SCREEN_MINIBUF_WINDOW 793 ? (FRAME_MINIBUF_WINDOW
794 (XSCREEN 794 (XFRAME
795 (WINDOW_SCREEN 795 (WINDOW_FRAME
796 (XWINDOW (window))))) 796 (XWINDOW (window)))))
797 : Qnil); 797 : Qnil);
798 else if (! EQ (all_screens, Qt)) 798 else if (! EQ (all_frames, Qt))
799 all_screens = Qnil; 799 all_frames = Qnil;
800 800
801 /* Do this loop at least once, to get the next window, and perhaps 801 /* Do this loop at least once, to get the next window, and perhaps
802 again, if we hit the minibuffer and that is not acceptable. */ 802 again, if we hit the minibuffer and that is not acceptable. */
@@ -809,14 +809,14 @@ above. If neither nil nor t, restrict to WINDOW's screen.")
809 window = tem; 809 window = tem;
810 else 810 else
811 { 811 {
812 /* We've reached the end of this screen. 812 /* We've reached the end of this frame.
813 Which other screens are acceptable? */ 813 Which other frames are acceptable? */
814 tem = WINDOW_SCREEN (XWINDOW (window)); 814 tem = WINDOW_FRAME (XWINDOW (window));
815#ifdef MULTI_SCREEN 815#ifdef MULTI_FRAME
816 if (! NILP (all_screens)) 816 if (! NILP (all_frames))
817 tem = next_screen (tem, all_screens); 817 tem = next_frame (tem, all_frames);
818#endif 818#endif
819 tem = SCREEN_ROOT_WINDOW (XSCREEN (tem)); 819 tem = FRAME_ROOT_WINDOW (XFRAME (tem));
820 820
821 break; 821 break;
822 } 822 }
@@ -855,18 +855,18 @@ if not active. MINIBUF nil or omitted means count the minibuffer iff\n\
855it is active. MINIBUF neither t nor nil means not to count the\n\ 855it is active. MINIBUF neither t nor nil means not to count the\n\
856minibuffer even if it is active.\n\ 856minibuffer even if it is active.\n\
857\n\ 857\n\
858Several screens may share a single minibuffer; if the minibuffer\n\ 858Several frames may share a single minibuffer; if the minibuffer\n\
859counts, all windows on all screens that share that minibuffer count\n\ 859counts, all windows on all frames that share that minibuffer count\n\
860too. This means that previous-window may be used to iterate through\n\ 860too. This means that previous-window may be used to iterate through\n\
861the set of windows even when the minibuffer is on another screen. If\n\ 861the set of windows even when the minibuffer is on another frame. If\n\
862the minibuffer does not count, only windows from WINDOW's screen\n\ 862the minibuffer does not count, only windows from WINDOW's frame\n\
863count.\n\ 863count.\n\
864\n\ 864\n\
865Optional third arg ALL-SCREENS t means include windows on all screens.\n\ 865Optional third arg ALL-FRAMES t means include windows on all frames.\n\
866ALL-SCREENS nil or omitted means cycle within the screens as specified\n\ 866ALL-FRAMES nil or omitted means cycle within the frames as specified\n\
867above. If neither nil nor t, restrict to WINDOW's screen.") 867above. If neither nil nor t, restrict to WINDOW's frame.")
868 (window, minibuf, all_screens) 868 (window, minibuf, all_frames)
869 register Lisp_Object window, minibuf, all_screens; 869 register Lisp_Object window, minibuf, all_frames;
870{ 870{
871 register Lisp_Object tem; 871 register Lisp_Object tem;
872 Lisp_Object start_window; 872 Lisp_Object start_window;
@@ -883,17 +883,17 @@ above. If neither nil nor t, restrict to WINDOW's screen.")
883 if (NILP (minibuf)) 883 if (NILP (minibuf))
884 minibuf = (minibuf_level ? Qt : Qlambda); 884 minibuf = (minibuf_level ? Qt : Qlambda);
885 885
886 /* all_screens == nil doesn't specify which screens to include. 886 /* all_frames == nil doesn't specify which frames to include.
887 Decide which screens it includes. */ 887 Decide which frames it includes. */
888 if (NILP (all_screens)) 888 if (NILP (all_frames))
889 all_screens = (EQ (minibuf, Qt) 889 all_frames = (EQ (minibuf, Qt)
890 ? (SCREEN_MINIBUF_WINDOW 890 ? (FRAME_MINIBUF_WINDOW
891 (XSCREEN 891 (XFRAME
892 (WINDOW_SCREEN 892 (WINDOW_FRAME
893 (XWINDOW (window))))) 893 (XWINDOW (window)))))
894 : Qnil); 894 : Qnil);
895 else if (! EQ (all_screens, Qt)) 895 else if (! EQ (all_frames, Qt))
896 all_screens = Qnil; 896 all_frames = Qnil;
897 897
898 /* Do this loop at least once, to get the previous window, and perhaps 898 /* Do this loop at least once, to get the previous window, and perhaps
899 again, if we hit the minibuffer and that is not acceptable. */ 899 again, if we hit the minibuffer and that is not acceptable. */
@@ -906,14 +906,14 @@ above. If neither nil nor t, restrict to WINDOW's screen.")
906 window = tem; 906 window = tem;
907 else 907 else
908 { 908 {
909 /* We have found the top window on the screen. 909 /* We have found the top window on the frame.
910 Which screens are acceptable? */ 910 Which frames are acceptable? */
911 tem = WINDOW_SCREEN (XWINDOW (window)); 911 tem = WINDOW_FRAME (XWINDOW (window));
912#ifdef MULTI_SCREEN 912#ifdef MULTI_FRAME
913 if (! NILP (all_screens)) 913 if (! NILP (all_frames))
914 tem = next_screen (tem, all_screens); 914 tem = next_frame (tem, all_frames);
915#endif 915#endif
916 tem = SCREEN_ROOT_WINDOW (XSCREEN (tem)); 916 tem = FRAME_ROOT_WINDOW (XFRAME (tem));
917 917
918 break; 918 break;
919 } 919 }
@@ -945,13 +945,13 @@ above. If neither nil nor t, restrict to WINDOW's screen.")
945} 945}
946 946
947DEFUN ("other-window", Fother_window, Sother_window, 1, 2, "p", 947DEFUN ("other-window", Fother_window, Sother_window, 1, 2, "p",
948 "Select the ARG'th different window on this screen.\n\ 948 "Select the ARG'th different window on this frame.\n\
949All windows on current screen are arranged in a cyclic order.\n\ 949All windows on current frame are arranged in a cyclic order.\n\
950This command selects the window ARG steps away in that order.\n\ 950This command selects the window ARG steps away in that order.\n\
951A negative ARG moves in the opposite order. If the optional second\n\ 951A negative ARG moves in the opposite order. If the optional second\n\
952argument ALL_SCREENS is non-nil, cycle through all screens.") 952argument ALL_FRAMES is non-nil, cycle through all frames.")
953 (n, all_screens) 953 (n, all_frames)
954 register Lisp_Object n, all_screens; 954 register Lisp_Object n, all_frames;
955{ 955{
956 register int i; 956 register int i;
957 register Lisp_Object w; 957 register Lisp_Object w;
@@ -962,12 +962,12 @@ argument ALL_SCREENS is non-nil, cycle through all screens.")
962 962
963 while (i > 0) 963 while (i > 0)
964 { 964 {
965 w = Fnext_window (w, Qnil, all_screens); 965 w = Fnext_window (w, Qnil, all_frames);
966 i--; 966 i--;
967 } 967 }
968 while (i < 0) 968 while (i < 0)
969 { 969 {
970 w = Fprevious_window (w, Qnil, all_screens); 970 w = Fprevious_window (w, Qnil, all_frames);
971 i++; 971 i++;
972 } 972 }
973 Fselect_window (w); 973 Fselect_window (w);
@@ -976,8 +976,8 @@ argument ALL_SCREENS is non-nil, cycle through all screens.")
976 976
977/* Look at all windows, performing an operation specified by TYPE 977/* Look at all windows, performing an operation specified by TYPE
978 with argument OBJ. 978 with argument OBJ.
979 If SCREENS is Qt, look at all screens, if Qnil, look at just the selected 979 If FRAMES is Qt, look at all frames, if Qnil, look at just the selected
980 screen. If SCREENS is a screen, just look at windows on that screen. 980 frame. If FRAMES is a frame, just look at windows on that frame.
981 If MINI is non-zero, perform the operation on minibuffer windows too. 981 If MINI is non-zero, perform the operation on minibuffer windows too.
982*/ 982*/
983 983
@@ -993,34 +993,34 @@ enum window_loop
993}; 993};
994 994
995static Lisp_Object 995static Lisp_Object
996window_loop (type, obj, mini, screens) 996window_loop (type, obj, mini, frames)
997 enum window_loop type; 997 enum window_loop type;
998 register Lisp_Object obj, screens; 998 register Lisp_Object obj, frames;
999 int mini; 999 int mini;
1000{ 1000{
1001 register Lisp_Object w; 1001 register Lisp_Object w;
1002 register Lisp_Object best_window; 1002 register Lisp_Object best_window;
1003 register Lisp_Object next_window; 1003 register Lisp_Object next_window;
1004 register Lisp_Object first_window; 1004 register Lisp_Object first_window;
1005 SCREEN_PTR screen; 1005 FRAME_PTR frame;
1006 1006
1007 /* If we're only looping through windows on a particular screen, 1007 /* If we're only looping through windows on a particular frame,
1008 screen points to that screen. If we're looping through windows 1008 frame points to that frame. If we're looping through windows
1009 on all screens, screen is 0. */ 1009 on all frames, frame is 0. */
1010 if (SCREENP (screens)) 1010 if (FRAMEP (frames))
1011 screen = XSCREEN (screens); 1011 frame = XFRAME (frames);
1012 else if (NILP (screens)) 1012 else if (NILP (frames))
1013 screen = selected_screen; 1013 frame = selected_frame;
1014 else 1014 else
1015 screen = 0; 1015 frame = 0;
1016 1016
1017 /* Pick a window to start with. */ 1017 /* Pick a window to start with. */
1018 if (XTYPE (obj) == Lisp_Window) 1018 if (XTYPE (obj) == Lisp_Window)
1019 first_window = obj; 1019 first_window = obj;
1020 else if (screen) 1020 else if (frame)
1021 first_window = SCREEN_SELECTED_WINDOW (screen); 1021 first_window = FRAME_SELECTED_WINDOW (frame);
1022 else 1022 else
1023 first_window = SCREEN_SELECTED_WINDOW (selected_screen); 1023 first_window = FRAME_SELECTED_WINDOW (selected_frame);
1024 1024
1025 w = first_window; 1025 w = first_window;
1026 best_window = Qnil; 1026 best_window = Qnil;
@@ -1028,13 +1028,13 @@ window_loop (type, obj, mini, screens)
1028 { 1028 {
1029 /* Pick the next window now, since some operations will delete 1029 /* Pick the next window now, since some operations will delete
1030 the current window. */ 1030 the current window. */
1031#ifdef MULTI_SCREEN 1031#ifdef MULTI_FRAME
1032 if (screen) 1032 if (frame)
1033 next_window = Fnext_window (w, (mini ? Qt : Qnil), Qlambda); 1033 next_window = Fnext_window (w, (mini ? Qt : Qnil), Qlambda);
1034 else 1034 else
1035#endif /* MULTI_SCREEN */ 1035#endif /* MULTI_FRAME */
1036 /* We know screen is 0, so we're looping through all screens. 1036 /* We know frame is 0, so we're looping through all frames.
1037 Or we know this isn't a MULTI_SCREEN Emacs, so who cares? */ 1037 Or we know this isn't a MULTI_FRAME Emacs, so who cares? */
1038 next_window = Fnext_window (w, mini ? Qt : Qnil, Qt); 1038 next_window = Fnext_window (w, mini ? Qt : Qnil, Qt);
1039 1039
1040 if (!MINI_WINDOW_P (XWINDOW (w)) 1040 if (!MINI_WINDOW_P (XWINDOW (w))
@@ -1043,9 +1043,9 @@ window_loop (type, obj, mini, screens)
1043 { 1043 {
1044 case GET_BUFFER_WINDOW: 1044 case GET_BUFFER_WINDOW:
1045#if 0 1045#if 0
1046 /* Ignore invisible and iconified screens. */ 1046 /* Ignore invisible and iconified frames. */
1047 if (! SCREEN_VISIBLE_P (XSCREEN (WINDOW_SCREEN (XWINDOW (w)))) 1047 if (! FRAME_VISIBLE_P (XFRAME (WINDOW_FRAME (XWINDOW (w))))
1048 || SCREEN_ICONIFIED_P (XSCREEN (WINDOW_SCREEN (XWINDOW (w))))) 1048 || FRAME_ICONIFIED_P (XFRAME (WINDOW_FRAME (XWINDOW (w)))))
1049 break; 1049 break;
1050#endif 1050#endif
1051 if (XBUFFER (XWINDOW (w)->buffer) == XBUFFER (obj)) 1051 if (XBUFFER (XWINDOW (w)->buffer) == XBUFFER (obj))
@@ -1055,12 +1055,12 @@ window_loop (type, obj, mini, screens)
1055 case GET_LRU_WINDOW: 1055 case GET_LRU_WINDOW:
1056 /* t as arg means consider only full-width windows */ 1056 /* t as arg means consider only full-width windows */
1057 if (!NILP (obj) && XFASTINT (XWINDOW (w)->width) 1057 if (!NILP (obj) && XFASTINT (XWINDOW (w)->width)
1058 != SCREEN_WIDTH (screen)) 1058 != FRAME_WIDTH (frame))
1059 break; 1059 break;
1060#if 0 1060#if 0
1061 /* Ignore invisible and iconified screens. */ 1061 /* Ignore invisible and iconified frames. */
1062 if (! SCREEN_VISIBLE_P (XSCREEN (WINDOW_SCREEN (XWINDOW (w)))) 1062 if (! FRAME_VISIBLE_P (XFRAME (WINDOW_FRAME (XWINDOW (w))))
1063 || SCREEN_ICONIFIED_P (XSCREEN (WINDOW_SCREEN (XWINDOW (w))))) 1063 || FRAME_ICONIFIED_P (XFRAME (WINDOW_FRAME (XWINDOW (w)))))
1064 break; 1064 break;
1065#endif 1065#endif
1066 /* Ignore dedicated windows and minibuffers. */ 1066 /* Ignore dedicated windows and minibuffers. */
@@ -1082,7 +1082,7 @@ window_loop (type, obj, mini, screens)
1082 if (EQ (XWINDOW (w)->buffer, obj)) 1082 if (EQ (XWINDOW (w)->buffer, obj))
1083 { 1083 {
1084 /* If we're deleting the buffer displayed in the only window 1084 /* If we're deleting the buffer displayed in the only window
1085 on the screen, find a new buffer to display there. */ 1085 on the frame, find a new buffer to display there. */
1086 if (NILP (XWINDOW (w)->parent)) 1086 if (NILP (XWINDOW (w)->parent))
1087 { 1087 {
1088 Lisp_Object new_buffer = Fother_buffer (obj); 1088 Lisp_Object new_buffer = Fother_buffer (obj);
@@ -1099,9 +1099,9 @@ window_loop (type, obj, mini, screens)
1099 1099
1100 case GET_LARGEST_WINDOW: 1100 case GET_LARGEST_WINDOW:
1101#if 0 1101#if 0
1102 /* Ignore invisible and iconified screens. */ 1102 /* Ignore invisible and iconified frames. */
1103 if (! SCREEN_VISIBLE_P (XSCREEN (WINDOW_SCREEN (XWINDOW (w)))) 1103 if (! FRAME_VISIBLE_P (XFRAME (WINDOW_FRAME (XWINDOW (w))))
1104 || SCREEN_ICONIFIED_P (XSCREEN (WINDOW_SCREEN (XWINDOW (w))))) 1104 || FRAME_ICONIFIED_P (XFRAME (WINDOW_FRAME (XWINDOW (w)))))
1105 break; 1105 break;
1106#endif 1106#endif
1107 /* Ignore dedicated windows and minibuffers. */ 1107 /* Ignore dedicated windows and minibuffers. */
@@ -1142,49 +1142,49 @@ window_loop (type, obj, mini, screens)
1142 1142
1143DEFUN ("get-lru-window", Fget_lru_window, Sget_lru_window, 0, 1, 0, 1143DEFUN ("get-lru-window", Fget_lru_window, Sget_lru_window, 0, 1, 0,
1144 "Return the window least recently selected or used for display.\n\ 1144 "Return the window least recently selected or used for display.\n\
1145If optional argument SCREENS is t, search all screens. If SCREEN is a\n\ 1145If optional argument FRAMES is t, search all frames. If FRAME is a\n\
1146screen, search only that screen.\n") 1146frame, search only that frame.\n")
1147 (screens) 1147 (frames)
1148 Lisp_Object screens; 1148 Lisp_Object frames;
1149{ 1149{
1150 register Lisp_Object w; 1150 register Lisp_Object w;
1151 /* First try for a window that is full-width */ 1151 /* First try for a window that is full-width */
1152 w = window_loop (GET_LRU_WINDOW, Qt, 0, screens); 1152 w = window_loop (GET_LRU_WINDOW, Qt, 0, frames);
1153 if (!NILP (w) && !EQ (w, selected_window)) 1153 if (!NILP (w) && !EQ (w, selected_window))
1154 return w; 1154 return w;
1155 /* If none of them, try the rest */ 1155 /* If none of them, try the rest */
1156 return window_loop (GET_LRU_WINDOW, Qnil, 0, screens); 1156 return window_loop (GET_LRU_WINDOW, Qnil, 0, frames);
1157} 1157}
1158 1158
1159DEFUN ("get-largest-window", Fget_largest_window, Sget_largest_window, 0, 1, 0, 1159DEFUN ("get-largest-window", Fget_largest_window, Sget_largest_window, 0, 1, 0,
1160 "Return the largest window in area.\n\ 1160 "Return the largest window in area.\n\
1161If optional argument SCREENS is t, search all screens. If SCREEN is a\n\ 1161If optional argument FRAMES is t, search all frames. If FRAME is a\n\
1162screen, search only that screen.\n") 1162frame, search only that frame.\n")
1163 (screen) 1163 (frame)
1164 Lisp_Object screen; 1164 Lisp_Object frame;
1165{ 1165{
1166 return window_loop (GET_LARGEST_WINDOW, Qnil, 0, 1166 return window_loop (GET_LARGEST_WINDOW, Qnil, 0,
1167 screen); 1167 frame);
1168} 1168}
1169 1169
1170DEFUN ("get-buffer-window", Fget_buffer_window, Sget_buffer_window, 1, 2, 0, 1170DEFUN ("get-buffer-window", Fget_buffer_window, Sget_buffer_window, 1, 2, 0,
1171 "Return a window currently displaying BUFFER, or nil if none.\n\ 1171 "Return a window currently displaying BUFFER, or nil if none.\n\
1172If optional argument SCREENS is t, search all screens. If SCREEN is a\n\ 1172If optional argument FRAMES is t, search all frames. If FRAME is a\n\
1173screen, search only that screen.\n") 1173frame, search only that frame.\n")
1174 (buffer, screen) 1174 (buffer, frame)
1175 Lisp_Object buffer, screen; 1175 Lisp_Object buffer, frame;
1176{ 1176{
1177 buffer = Fget_buffer (buffer); 1177 buffer = Fget_buffer (buffer);
1178 if (XTYPE (buffer) == Lisp_Buffer) 1178 if (XTYPE (buffer) == Lisp_Buffer)
1179 return window_loop (GET_BUFFER_WINDOW, buffer, 1, screen); 1179 return window_loop (GET_BUFFER_WINDOW, buffer, 1, frame);
1180 else 1180 else
1181 return Qnil; 1181 return Qnil;
1182} 1182}
1183 1183
1184DEFUN ("delete-other-windows", Fdelete_other_windows, Sdelete_other_windows, 1184DEFUN ("delete-other-windows", Fdelete_other_windows, Sdelete_other_windows,
1185 0, 1, "", 1185 0, 1, "",
1186 "Make WINDOW (or the selected window) fill its screen.\n\ 1186 "Make WINDOW (or the selected window) fill its frame.\n\
1187Only the screen WINDOW is on is affected.") 1187Only the frame WINDOW is on is affected.")
1188 (window) 1188 (window)
1189 Lisp_Object window; 1189 Lisp_Object window;
1190{ 1190{
@@ -1201,7 +1201,7 @@ Only the screen WINDOW is on is affected.")
1201 w = XWINDOW (window); 1201 w = XWINDOW (window);
1202 top = XFASTINT (w->top); 1202 top = XFASTINT (w->top);
1203 1203
1204 window_loop (DELETE_OTHER_WINDOWS, window, 0, WINDOW_SCREEN(w)); 1204 window_loop (DELETE_OTHER_WINDOWS, window, 0, WINDOW_FRAME(w));
1205 1205
1206 Fset_buffer (w->buffer); 1206 Fset_buffer (w->buffer);
1207 SET_PT (marker_position (w->start)); 1207 SET_PT (marker_position (w->start));
@@ -1439,14 +1439,14 @@ before each command.")
1439 ow->buffer); 1439 ow->buffer);
1440 1440
1441 selected_window = window; 1441 selected_window = window;
1442#ifdef MULTI_SCREEN 1442#ifdef MULTI_FRAME
1443 if (XSCREEN (WINDOW_SCREEN (w)) != selected_screen) 1443 if (XFRAME (WINDOW_FRAME (w)) != selected_frame)
1444 { 1444 {
1445 XSCREEN (WINDOW_SCREEN (w))->selected_window = window; 1445 XFRAME (WINDOW_FRAME (w))->selected_window = window;
1446 Fselect_screen (WINDOW_SCREEN (w), Qnil); 1446 Fselect_frame (WINDOW_FRAME (w), Qnil);
1447 } 1447 }
1448 else 1448 else
1449 selected_screen->selected_window = window; 1449 selected_frame->selected_window = window;
1450#endif 1450#endif
1451 1451
1452 record_buffer (w->buffer); 1452 record_buffer (w->buffer);
@@ -1499,48 +1499,48 @@ Returns the window displaying BUFFER.")
1499 && (NILP (not_this_window) || !EQ (window, selected_window))) 1499 && (NILP (not_this_window) || !EQ (window, selected_window)))
1500 return window; 1500 return window;
1501 1501
1502#ifdef MULTI_SCREEN 1502#ifdef MULTI_FRAME
1503 /* If there are no screens open that have more than a minibuffer, 1503 /* If there are no frames open that have more than a minibuffer,
1504 we need to create a new screen. */ 1504 we need to create a new frame. */
1505 if (pop_up_screens || last_nonminibuf_screen == 0) 1505 if (pop_up_frames || last_nonminibuf_frame == 0)
1506 { 1506 {
1507 window 1507 window
1508 = Fscreen_selected_window (call0 (Vpop_up_screen_function)); 1508 = Fframe_selected_window (call0 (Vpop_up_frame_function));
1509 Fset_window_buffer (window, buffer); 1509 Fset_window_buffer (window, buffer);
1510#if 0 1510#if 0
1511 Fselect_screen (XWINDOW (window)->screen, Qnil); 1511 Fselect_frame (XWINDOW (window)->frame, Qnil);
1512#endif 1512#endif
1513 return window; 1513 return window;
1514 } 1514 }
1515#endif /* MULTI_SCREEN */ 1515#endif /* MULTI_FRAME */
1516 1516
1517 if (pop_up_windows 1517 if (pop_up_windows
1518#ifdef MULTI_SCREEN 1518#ifdef MULTI_FRAME
1519 || SCREEN_MINIBUF_ONLY_P (selected_screen) 1519 || FRAME_MINIBUF_ONLY_P (selected_frame)
1520#endif 1520#endif
1521 ) 1521 )
1522 { 1522 {
1523 Lisp_Object screens = Qnil; 1523 Lisp_Object frames = Qnil;
1524 1524
1525#ifdef MULTI_SCREEN 1525#ifdef MULTI_FRAME
1526 if (SCREEN_MINIBUF_ONLY_P (selected_screen)) 1526 if (FRAME_MINIBUF_ONLY_P (selected_frame))
1527 XSET (screens, Lisp_Screen, last_nonminibuf_screen); 1527 XSET (frames, Lisp_Frame, last_nonminibuf_frame);
1528#endif 1528#endif
1529 /* Don't try to create a window if would get an error */ 1529 /* Don't try to create a window if would get an error */
1530 if (split_height_threshold < window_min_height << 1) 1530 if (split_height_threshold < window_min_height << 1)
1531 split_height_threshold = window_min_height << 1; 1531 split_height_threshold = window_min_height << 1;
1532 1532
1533 window = Fget_largest_window (screens); 1533 window = Fget_largest_window (frames);
1534 1534
1535 if (!NILP (window) 1535 if (!NILP (window)
1536 && window_height (window) >= split_height_threshold 1536 && window_height (window) >= split_height_threshold
1537 && 1537 &&
1538 (XFASTINT (XWINDOW (window)->width) 1538 (XFASTINT (XWINDOW (window)->width)
1539 == SCREEN_WIDTH (XSCREEN (WINDOW_SCREEN (XWINDOW (window)))))) 1539 == FRAME_WIDTH (XFRAME (WINDOW_FRAME (XWINDOW (window))))))
1540 window = Fsplit_window (window, Qnil, Qnil); 1540 window = Fsplit_window (window, Qnil, Qnil);
1541 else 1541 else
1542 { 1542 {
1543 window = Fget_lru_window (screens); 1543 window = Fget_lru_window (frames);
1544 if ((EQ (window, selected_window) 1544 if ((EQ (window, selected_window)
1545 || EQ (XWINDOW (window)->parent, Qnil)) 1545 || EQ (XWINDOW (window)->parent, Qnil))
1546 && window_height (window) >= window_min_height << 1) 1546 && window_height (window) >= window_min_height << 1)
@@ -1576,10 +1576,10 @@ temp_output_buffer_show (buf)
1576 { 1576 {
1577 window = Fdisplay_buffer (buf, Qnil); 1577 window = Fdisplay_buffer (buf, Qnil);
1578 1578
1579#ifdef MULTI_SCREEN 1579#ifdef MULTI_FRAME
1580 if (XSCREEN (XWINDOW (window)->screen) != selected_screen) 1580 if (XFRAME (XWINDOW (window)->frame) != selected_frame)
1581 Fmake_screen_visible (XWINDOW (window)->screen); 1581 Fmake_frame_visible (WINDOW_FRAME (XWINDOW (window)));
1582#endif /* MULTI_SCREEN */ 1582#endif /* MULTI_FRAME */
1583 Vminibuf_scroll_window = window; 1583 Vminibuf_scroll_window = window;
1584 w = XWINDOW (window); 1584 w = XWINDOW (window);
1585 XFASTINT (w->hscroll) = 0; 1585 XFASTINT (w->hscroll) = 0;
@@ -1654,8 +1654,8 @@ and put SIZE columns in the first of the pair.")
1654 1654
1655 if (MINI_WINDOW_P (o)) 1655 if (MINI_WINDOW_P (o))
1656 error ("Attempt to split minibuffer window"); 1656 error ("Attempt to split minibuffer window");
1657 else if (SCREEN_NO_SPLIT_P (XSCREEN (WINDOW_SCREEN (o)))) 1657 else if (FRAME_NO_SPLIT_P (XFRAME (WINDOW_FRAME (o))))
1658 error ("Attempt to split unsplittable screen"); 1658 error ("Attempt to split unsplittable frame");
1659 1659
1660 /* Smaller values might permit a crash. */ 1660 /* Smaller values might permit a crash. */
1661 if (window_min_width < 2) 1661 if (window_min_width < 2)
@@ -1698,7 +1698,7 @@ and put SIZE columns in the first of the pair.")
1698 new = make_window (); 1698 new = make_window ();
1699 p = XWINDOW (new); 1699 p = XWINDOW (new);
1700 1700
1701 p->screen = o->screen; 1701 p->frame = o->frame;
1702 p->next = o->next; 1702 p->next = o->next;
1703 if (!NILP (p->next)) 1703 if (!NILP (p->next))
1704 XWINDOW (p->next)->prev = new; 1704 XWINDOW (p->next)->prev = new;
@@ -1709,7 +1709,7 @@ and put SIZE columns in the first of the pair.")
1709 1709
1710 Fset_window_buffer (new, o->buffer); 1710 Fset_window_buffer (new, o->buffer);
1711 1711
1712 /* Apportion the available screen space among the two new windows */ 1712 /* Apportion the available frame space among the two new windows */
1713 1713
1714 if (!NILP (horflag)) 1714 if (!NILP (horflag))
1715 { 1715 {
@@ -1833,14 +1833,14 @@ change_window_height (delta, widthflag)
1833 maxdelta = (!NILP (parent) ? (*sizefun) (parent) - *sizep 1833 maxdelta = (!NILP (parent) ? (*sizefun) (parent) - *sizep
1834 : !NILP (p->next) ? (*sizefun) (p->next) - MINSIZE (p->next) 1834 : !NILP (p->next) ? (*sizefun) (p->next) - MINSIZE (p->next)
1835 : !NILP (p->prev) ? (*sizefun) (p->prev) - MINSIZE (p->prev) 1835 : !NILP (p->prev) ? (*sizefun) (p->prev) - MINSIZE (p->prev)
1836 /* This is a screen with only one window, a minibuffer-only 1836 /* This is a frame with only one window, a minibuffer-only
1837 or a minibufferless screen. */ 1837 or a minibufferless frame. */
1838 : (delta = 0)); 1838 : (delta = 0));
1839 1839
1840 if (delta > maxdelta) 1840 if (delta > maxdelta)
1841 /* This case traps trying to make the minibuffer 1841 /* This case traps trying to make the minibuffer
1842 the full screen, or make the only window aside from the 1842 the full frame, or make the only window aside from the
1843 minibuffer the full screen. */ 1843 minibuffer the full frame. */
1844 delta = maxdelta; 1844 delta = maxdelta;
1845 1845
1846 if (delta == 0) 1846 if (delta == 0)
@@ -1914,7 +1914,7 @@ window_internal_height (w)
1914 1914
1915 if (!NILP (w->parent) || !NILP (w->vchild) || !NILP (w->hchild) 1915 if (!NILP (w->parent) || !NILP (w->vchild) || !NILP (w->hchild)
1916 || !NILP (w->next) || !NILP (w->prev) 1916 || !NILP (w->next) || !NILP (w->prev)
1917 || SCREEN_WANTS_MODELINE_P (XSCREEN (WINDOW_SCREEN (w)))) 1917 || FRAME_WANTS_MODELINE_P (XFRAME (WINDOW_FRAME (w))))
1918 return ht - 1; 1918 return ht - 1;
1919 1919
1920 return ht; 1920 return ht;
@@ -2145,11 +2145,11 @@ Default for ARG is window width minus 2.")
2145} 2145}
2146 2146
2147DEFUN ("recenter", Frecenter, Srecenter, 0, 1, "P", 2147DEFUN ("recenter", Frecenter, Srecenter, 0, 1, "P",
2148 "Center point in window and redisplay screen. With ARG, put point on line ARG.\n\ 2148 "Center point in window and redisplay frame. With ARG, put point on line ARG.\n\
2149The desired position of point is always relative to the current window.\n\ 2149The desired position of point is always relative to the current window.\n\
2150Just C-u as prefix means put point in the center of the screen.\n\ 2150Just C-u as prefix means put point in the center of the window.\n\
2151No arg (i.e., it is nil) erases the entire screen and then\n\ 2151No arg (i.e., it is nil) erases the entire frame and then\n\
2152redraws with point in the center.") 2152redraws with point in the center of the current window.")
2153 (n) 2153 (n)
2154 register Lisp_Object n; 2154 register Lisp_Object n;
2155{ 2155{
@@ -2159,9 +2159,9 @@ redraws with point in the center.")
2159 2159
2160 if (NILP (n)) 2160 if (NILP (n))
2161 { 2161 {
2162 extern int screen_garbaged; 2162 extern int frame_garbaged;
2163 2163
2164 SET_SCREEN_GARBAGED (XSCREEN (WINDOW_SCREEN (w))); 2164 SET_FRAME_GARBAGED (XFRAME (WINDOW_FRAME (w)));
2165 XFASTINT (n) = ht / 2; 2165 XFASTINT (n) = ht / 2;
2166 } 2166 }
2167 else if (XTYPE (n) == Lisp_Cons) /* Just C-u. */ 2167 else if (XTYPE (n) == Lisp_Cons) /* Just C-u. */
@@ -2193,7 +2193,7 @@ DEFUN ("move-to-window-line", Fmove_to_window_line, Smove_to_window_line,
2193 1, 1, "P", 2193 1, 1, "P",
2194 "Position point relative to window.\n\ 2194 "Position point relative to window.\n\
2195With no argument, position text at center of window.\n\ 2195With no argument, position text at center of window.\n\
2196An argument specifies screen line; zero means top of window,\n\ 2196An argument specifies frame line; zero means top of window,\n\
2197negative means relative to bottom of window.") 2197negative means relative to bottom of window.")
2198 (arg) 2198 (arg)
2199 register Lisp_Object arg; 2199 register Lisp_Object arg;
@@ -2229,7 +2229,7 @@ struct save_window_data
2229 { 2229 {
2230 int size_from_Lisp_Vector_struct; 2230 int size_from_Lisp_Vector_struct;
2231 struct Lisp_Vector *next_from_Lisp_Vector_struct; 2231 struct Lisp_Vector *next_from_Lisp_Vector_struct;
2232 Lisp_Object screen_width, screen_height; 2232 Lisp_Object frame_width, frame_height;
2233 Lisp_Object current_window; 2233 Lisp_Object current_window;
2234 Lisp_Object current_buffer; 2234 Lisp_Object current_buffer;
2235 Lisp_Object minibuf_scroll_window; 2235 Lisp_Object minibuf_scroll_window;
@@ -2285,7 +2285,7 @@ by `current-window-configuration' (which see).")
2285 register Lisp_Object tem; 2285 register Lisp_Object tem;
2286 Lisp_Object new_current_buffer; 2286 Lisp_Object new_current_buffer;
2287 int k; 2287 int k;
2288 SCREEN_PTR s; 2288 FRAME_PTR f;
2289 2289
2290 while (XTYPE (arg) != Lisp_Window_Configuration) 2290 while (XTYPE (arg) != Lisp_Window_Configuration)
2291 { 2291 {
@@ -2295,16 +2295,16 @@ by `current-window-configuration' (which see).")
2295 data = (struct save_window_data *) XVECTOR (arg); 2295 data = (struct save_window_data *) XVECTOR (arg);
2296 saved_windows = XVECTOR (data->saved_windows); 2296 saved_windows = XVECTOR (data->saved_windows);
2297 2297
2298 s = XSCREEN (XWINDOW (SAVED_WINDOW_N (saved_windows, 0)->window)->screen); 2298 f = XFRAME (XWINDOW (SAVED_WINDOW_N (saved_windows, 0)->window)->frame);
2299 2299
2300 if (XFASTINT (data->screen_height) != SCREEN_HEIGHT (s) 2300 if (XFASTINT (data->frame_height) != FRAME_HEIGHT (f)
2301 || XFASTINT (data->screen_width) != SCREEN_WIDTH (s)) 2301 || XFASTINT (data->frame_width) != FRAME_WIDTH (f))
2302 { 2302 {
2303 /* Presumably something clever could be done. 2303 /* Presumably something clever could be done.
2304 However, it doesn't seem worth the effort */ 2304 However, it doesn't seem worth the effort */
2305 error ("Screen size %dx%d in saved window configuration mismatches screen.", 2305 error ("Frame size %dx%d in saved window configuration mismatches frame.",
2306 XFASTINT (data->screen_height), 2306 XFASTINT (data->frame_height),
2307 XFASTINT (data->screen_width)); 2307 XFASTINT (data->frame_width));
2308 } 2308 }
2309 2309
2310 windows_or_buffers_changed++; 2310 windows_or_buffers_changed++;
@@ -2312,12 +2312,12 @@ by `current-window-configuration' (which see).")
2312 if (NILP (XBUFFER (new_current_buffer)->name)) 2312 if (NILP (XBUFFER (new_current_buffer)->name))
2313 new_current_buffer = Qnil; 2313 new_current_buffer = Qnil;
2314 2314
2315 /* Mark all windows now on screen as "deleted". 2315 /* Mark all windows now on frame as "deleted".
2316 Restoring the new configuration "undeletes" any that are in it. */ 2316 Restoring the new configuration "undeletes" any that are in it. */
2317 2317
2318 delete_all_subwindows (XWINDOW (SCREEN_ROOT_WINDOW (s))); 2318 delete_all_subwindows (XWINDOW (FRAME_ROOT_WINDOW (f)));
2319#if 0 2319#if 0
2320 /* This loses when the minibuf screen is not s. */ 2320 /* This loses when the minibuf frame is not f. */
2321 delete_all_subwindows (XWINDOW (XWINDOW (minibuf_window)->prev)); 2321 delete_all_subwindows (XWINDOW (XWINDOW (minibuf_window)->prev));
2322#endif 2322#endif
2323 2323
@@ -2335,12 +2335,12 @@ by `current-window-configuration' (which see).")
2335 if (!NILP (p->prev)) 2335 if (!NILP (p->prev))
2336 { 2336 {
2337 w->prev = SAVED_WINDOW_N (saved_windows, XFASTINT (p->prev))->window; 2337 w->prev = SAVED_WINDOW_N (saved_windows, XFASTINT (p->prev))->window;
2338#ifdef MULTI_SCREEN 2338#ifdef MULTI_FRAME
2339 /* This is true for a minibuffer-only screen. */ 2339 /* This is true for a minibuffer-only frame. */
2340 if (w->mini_p && EQ (w->prev, p->window)) 2340 if (w->mini_p && EQ (w->prev, p->window))
2341 w->next = Qnil; 2341 w->next = Qnil;
2342 else 2342 else
2343#endif /* MULTI_SCREEN */ 2343#endif /* MULTI_FRAME */
2344 XWINDOW (w->prev)->next = p->window; 2344 XWINDOW (w->prev)->next = p->window;
2345 } 2345 }
2346 else 2346 else
@@ -2412,14 +2412,14 @@ by `current-window-configuration' (which see).")
2412 } 2412 }
2413 } 2413 }
2414 2414
2415 SCREEN_ROOT_WINDOW (s) = data->root_window; 2415 FRAME_ROOT_WINDOW (f) = data->root_window;
2416 2416
2417#ifdef MULTI_SCREEN 2417#ifdef MULTI_FRAME
2418 if (s != selected_screen && ! SCREEN_IS_TERMCAP (s)) 2418 if (f != selected_frame && ! FRAME_IS_TERMCAP (f))
2419 Fselect_screen (WINDOW_SCREEN (XWINDOW (data->root_window)), Qnil); 2419 Fselect_frame (WINDOW_FRAME (XWINDOW (data->root_window)), Qnil);
2420#endif 2420#endif
2421 2421
2422 if (s == selected_screen) 2422 if (f == selected_frame)
2423 { 2423 {
2424 Fselect_window (data->current_window); 2424 Fselect_window (data->current_window);
2425 if (!NILP (new_current_buffer)) 2425 if (!NILP (new_current_buffer))
@@ -2432,7 +2432,7 @@ by `current-window-configuration' (which see).")
2432 return (Qnil); 2432 return (Qnil);
2433} 2433}
2434 2434
2435/* Mark all windows now on screen as deleted 2435/* Mark all windows now on frame as deleted
2436 by setting their buffers to nil. */ 2436 by setting their buffers to nil. */
2437 2437
2438static void 2438static void
@@ -2536,45 +2536,45 @@ save_window_save (window, vector, i)
2536 2536
2537DEFUN ("current-window-configuration", 2537DEFUN ("current-window-configuration",
2538 Fcurrent_window_configuration, Scurrent_window_configuration, 0, 1, 0, 2538 Fcurrent_window_configuration, Scurrent_window_configuration, 0, 1, 0,
2539 "Return an object representing the current window configuration of SCREEN.\n\ 2539 "Return an object representing the current window configuration of FRAME.\n\
2540If SCREEN is nil or omitted, use the selected screen.\n\ 2540If FRAME is nil or omitted, use the selected frame.\n\
2541This describes the number of windows, their sizes and current buffers,\n\ 2541This describes the number of windows, their sizes and current buffers,\n\
2542and for each displayed buffer, where display starts, and the positions of\n\ 2542and for each displayed buffer, where display starts, and the positions of\n\
2543point and mark. An exception is made for point in the current buffer:\n\ 2543point and mark. An exception is made for point in the current buffer:\n\
2544its value is -not- saved.") 2544its value is -not- saved.")
2545 (screen) 2545 (frame)
2546 Lisp_Object screen; 2546 Lisp_Object frame;
2547{ 2547{
2548 register Lisp_Object tem; 2548 register Lisp_Object tem;
2549 register int n_windows; 2549 register int n_windows;
2550 register struct save_window_data *data; 2550 register struct save_window_data *data;
2551 register int i; 2551 register int i;
2552 SCREEN_PTR s; 2552 FRAME_PTR f;
2553 2553
2554 if (NILP (screen)) 2554 if (NILP (frame))
2555 s = selected_screen; 2555 f = selected_frame;
2556 else 2556 else
2557 { 2557 {
2558 CHECK_LIVE_SCREEN (screen, 0); 2558 CHECK_LIVE_FRAME (frame, 0);
2559 s = XSCREEN (screen); 2559 f = XFRAME (frame);
2560 } 2560 }
2561 2561
2562 n_windows = count_windows (XWINDOW (SCREEN_ROOT_WINDOW (s))); 2562 n_windows = count_windows (XWINDOW (FRAME_ROOT_WINDOW (f)));
2563 data = (struct save_window_data *) 2563 data = (struct save_window_data *)
2564 XVECTOR (Fmake_vector (make_number (SAVE_WINDOW_DATA_SIZE), 2564 XVECTOR (Fmake_vector (make_number (SAVE_WINDOW_DATA_SIZE),
2565 Qnil)); 2565 Qnil));
2566 XFASTINT (data->screen_width) = SCREEN_WIDTH (s); 2566 XFASTINT (data->frame_width) = FRAME_WIDTH (f);
2567 XFASTINT (data->screen_height) = SCREEN_HEIGHT (s); 2567 XFASTINT (data->frame_height) = FRAME_HEIGHT (f);
2568 data->current_window = SCREEN_SELECTED_WINDOW (s); 2568 data->current_window = FRAME_SELECTED_WINDOW (f);
2569 XSET (data->current_buffer, Lisp_Buffer, current_buffer); 2569 XSET (data->current_buffer, Lisp_Buffer, current_buffer);
2570 data->minibuf_scroll_window = Vminibuf_scroll_window; 2570 data->minibuf_scroll_window = Vminibuf_scroll_window;
2571 data->root_window = SCREEN_ROOT_WINDOW (s); 2571 data->root_window = FRAME_ROOT_WINDOW (f);
2572 tem = Fmake_vector (make_number (n_windows), Qnil); 2572 tem = Fmake_vector (make_number (n_windows), Qnil);
2573 data->saved_windows = tem; 2573 data->saved_windows = tem;
2574 for (i = 0; i < n_windows; i++) 2574 for (i = 0; i < n_windows; i++)
2575 XVECTOR (tem)->contents[i] 2575 XVECTOR (tem)->contents[i]
2576 = Fmake_vector (make_number (SAVED_WINDOW_VECTOR_SIZE), Qnil); 2576 = Fmake_vector (make_number (SAVED_WINDOW_VECTOR_SIZE), Qnil);
2577 save_window_save (SCREEN_ROOT_WINDOW (s), 2577 save_window_save (FRAME_ROOT_WINDOW (f),
2578 XVECTOR (tem), 0); 2578 XVECTOR (tem), 0);
2579 XSET (tem, Lisp_Window_Configuration, data); 2579 XSET (tem, Lisp_Window_Configuration, data);
2580 return (tem); 2580 return (tem);
@@ -2600,47 +2600,47 @@ Does not restore the value of point in current buffer.")
2600 2600
2601init_window_once () 2601init_window_once ()
2602{ 2602{
2603#ifdef MULTI_SCREEN 2603#ifdef MULTI_FRAME
2604 selected_screen = make_terminal_screen (); 2604 selected_frame = make_terminal_frame ();
2605 minibuf_window = selected_screen->minibuffer_window; 2605 minibuf_window = selected_frame->minibuffer_window;
2606 selected_window = selected_screen->selected_window; 2606 selected_window = selected_frame->selected_window;
2607 last_nonminibuf_screen = selected_screen; 2607 last_nonminibuf_frame = selected_frame;
2608#else /* not MULTI_SCREEN */ 2608#else /* not MULTI_FRAME */
2609 extern Lisp_Object get_minibuffer (); 2609 extern Lisp_Object get_minibuffer ();
2610 2610
2611 SCREEN_ROOT_WINDOW (selected_screen) = make_window (); 2611 FRAME_ROOT_WINDOW (selected_frame) = make_window ();
2612 minibuf_window = make_window (); 2612 minibuf_window = make_window ();
2613 2613
2614 XWINDOW (SCREEN_ROOT_WINDOW (selected_screen))->next = minibuf_window; 2614 XWINDOW (FRAME_ROOT_WINDOW (selected_frame))->next = minibuf_window;
2615 XWINDOW (minibuf_window)->prev = SCREEN_ROOT_WINDOW (selected_screen); 2615 XWINDOW (minibuf_window)->prev = FRAME_ROOT_WINDOW (selected_frame);
2616 2616
2617 /* These values 9 and 10 are arbitrary, 2617 /* These values 9 and 10 are arbitrary,
2618 just so that there is "something there." 2618 just so that there is "something there."
2619 Correct values are put in in init_xdisp */ 2619 Correct values are put in in init_xdisp */
2620 2620
2621 XFASTINT (XWINDOW (SCREEN_ROOT_WINDOW (selected_screen))->width) = 10; 2621 XFASTINT (XWINDOW (FRAME_ROOT_WINDOW (selected_frame))->width) = 10;
2622 XFASTINT (XWINDOW (minibuf_window)->width) = 10; 2622 XFASTINT (XWINDOW (minibuf_window)->width) = 10;
2623 2623
2624 XFASTINT (XWINDOW (SCREEN_ROOT_WINDOW (selected_screen))->height) = 9; 2624 XFASTINT (XWINDOW (FRAME_ROOT_WINDOW (selected_frame))->height) = 9;
2625 XFASTINT (XWINDOW (minibuf_window)->top) = 9; 2625 XFASTINT (XWINDOW (minibuf_window)->top) = 9;
2626 XFASTINT (XWINDOW (minibuf_window)->height) = 1; 2626 XFASTINT (XWINDOW (minibuf_window)->height) = 1;
2627 2627
2628 /* Prevent error in Fset_window_buffer. */ 2628 /* Prevent error in Fset_window_buffer. */
2629 XWINDOW (SCREEN_ROOT_WINDOW (selected_screen))->buffer = Qt; 2629 XWINDOW (FRAME_ROOT_WINDOW (selected_frame))->buffer = Qt;
2630 XWINDOW (minibuf_window)->buffer = Qt; 2630 XWINDOW (minibuf_window)->buffer = Qt;
2631 2631
2632 /* Now set them up for real. */ 2632 /* Now set them up for real. */
2633 Fset_window_buffer (SCREEN_ROOT_WINDOW (selected_screen), 2633 Fset_window_buffer (FRAME_ROOT_WINDOW (selected_frame),
2634 Fcurrent_buffer ()); 2634 Fcurrent_buffer ());
2635 Fset_window_buffer (minibuf_window, get_minibuffer (0)); 2635 Fset_window_buffer (minibuf_window, get_minibuffer (0));
2636 2636
2637 selected_window = SCREEN_ROOT_WINDOW (selected_screen); 2637 selected_window = FRAME_ROOT_WINDOW (selected_frame);
2638 /* Make sure this window seems more recently used than 2638 /* Make sure this window seems more recently used than
2639 a newly-created, never-selected window. Increment 2639 a newly-created, never-selected window. Increment
2640 window_select_count so the first selection ever will get 2640 window_select_count so the first selection ever will get
2641 something newer than this. */ 2641 something newer than this. */
2642 XFASTINT (XWINDOW (selected_window)->use_time) = ++window_select_count; 2642 XFASTINT (XWINDOW (selected_window)->use_time) = ++window_select_count;
2643#endif /* not MULTI_SCREEN */ 2643#endif /* not MULTI_FRAME */
2644} 2644}
2645 2645
2646syms_of_window () 2646syms_of_window ()
@@ -2670,13 +2670,13 @@ work using this function.");
2670 2670
2671 DEFVAR_LISP ("mouse-event", &Vmouse_event, 2671 DEFVAR_LISP ("mouse-event", &Vmouse_event,
2672 "The last mouse-event object. A list of four elements:\n\ 2672 "The last mouse-event object. A list of four elements:\n\
2673 ((X-POS Y-POS) WINDOW SCREEN-PART KEYSEQ).\n\ 2673 ((X-POS Y-POS) WINDOW FRAME-PART KEYSEQ).\n\
2674KEYSEQ is a string, the key sequence to be looked up in the mouse maps.\n\ 2674KEYSEQ is a string, the key sequence to be looked up in the mouse maps.\n\
2675WINDOW is the window that the click applies do.\n\ 2675WINDOW is the window that the click applies do.\n\
2676If SCREEN-PART is non-nil, the event was on a scrollbar;\n\ 2676If FRAME-PART is non-nil, the event was on a scrollbar;\n\
2677then Y-POS is really the total length of the scrollbar, while X-POS is\n\ 2677then Y-POS is really the total length of the scrollbar, while X-POS is\n\
2678the relative position of the scrollbar's value within that total length.\n\ 2678the relative position of the scrollbar's value within that total length.\n\
2679SCREEN-PART is one of the following symbols:\n\ 2679FRAME-PART is one of the following symbols:\n\
2680 `vertical-scrollbar', `vertical-slider',\n\ 2680 `vertical-scrollbar', `vertical-slider',\n\
2681 `vertical-thumbup', `vertical-thumbdown',\n\ 2681 `vertical-thumbup', `vertical-thumbdown',\n\
2682 `horizontal-scrollbar', `horizontal-slider',\n\ 2682 `horizontal-scrollbar', `horizontal-slider',\n\
@@ -2691,18 +2691,18 @@ SCREEN-PART is one of the following symbols:\n\
2691 "If non-nil, this is a buffer and \\[scroll-other-window] should scroll its window."); 2691 "If non-nil, this is a buffer and \\[scroll-other-window] should scroll its window.");
2692 Vother_window_scroll_buffer = Qnil; 2692 Vother_window_scroll_buffer = Qnil;
2693 2693
2694#ifdef MULTI_SCREEN 2694#ifdef MULTI_FRAME
2695 DEFVAR_BOOL ("pop-up-screens", &pop_up_screens, 2695 DEFVAR_BOOL ("pop-up-frames", &pop_up_frames,
2696 "*Non-nil means `display-buffer' should make a separate X-window."); 2696 "*Non-nil means `display-buffer' should make a separate X-window.");
2697 pop_up_screens = 0; 2697 pop_up_frames = 0;
2698 2698
2699 DEFVAR_LISP ("pop-up-screen-function", &Vpop_up_screen_function, 2699 DEFVAR_LISP ("pop-up-frame-function", &Vpop_up_frame_function,
2700 "*If non-nil, function to call to handle automatic new screen creation.\n\ 2700 "*If non-nil, function to call to handle automatic new frame creation.\n\
2701It is called with no arguments and should return a newly created screen.\n\ 2701It is called with no arguments and should return a newly created frame.\n\
2702\n\ 2702\n\
2703A typical value might be `(lambda () (x-create-screen auto-screen-parms))'\n\ 2703A typical value might be `(lambda () (new-frame pop-up-frame-alist))'\n\
2704where `auto-screen-parms' would hold the default screen parameters."); 2704where `pop-up-frame-alist' would hold the default frame parameters.");
2705 Vpop_up_screen_function = Qnil; 2705 Vpop_up_frame_function = Qnil;
2706#endif 2706#endif
2707 2707
2708 DEFVAR_BOOL ("pop-up-windows", &pop_up_windows, 2708 DEFVAR_BOOL ("pop-up-windows", &pop_up_windows,