comparison src/window.c @ 9614:e466cdfd962e

(Fdisplay_buffer): If the other window is smaller than its peer, even out their heights.
author Richard M. Stallman <rms@gnu.org>
date Thu, 20 Oct 1994 04:33:34 +0000
parents b36d5e88cccc
children 48854151266c
comparison
equal deleted inserted replaced
9613:530b4511e5b3 9614:e466cdfd962e
1944 && (XFASTINT (XWINDOW (window)->width) 1944 && (XFASTINT (XWINDOW (window)->width)
1945 == FRAME_WIDTH (XFRAME (WINDOW_FRAME (XWINDOW (window)))))) 1945 == FRAME_WIDTH (XFRAME (WINDOW_FRAME (XWINDOW (window))))))
1946 window = Fsplit_window (window, Qnil, Qnil); 1946 window = Fsplit_window (window, Qnil, Qnil);
1947 else 1947 else
1948 { 1948 {
1949 Lisp_Object upper, lower, other;
1950
1949 window = Fget_lru_window (frames); 1951 window = Fget_lru_window (frames);
1950 /* If the LRU window is selected, and big enough, 1952 /* If the LRU window is selected, and big enough,
1951 and can be split, split it. */ 1953 and can be split, split it. */
1952 if (!NILP (window) 1954 if (!NILP (window)
1953 && ! FRAME_NO_SPLIT_P (XFRAME (XWINDOW (window)->frame)) 1955 && ! FRAME_NO_SPLIT_P (XFRAME (XWINDOW (window)->frame))
1972 #else 1974 #else
1973 /* As a last resort, use a non minibuffer window. */ 1975 /* As a last resort, use a non minibuffer window. */
1974 if (NILP (window)) 1976 if (NILP (window))
1975 window = Fframe_first_window (Fselected_frame ()); 1977 window = Fframe_first_window (Fselected_frame ());
1976 #endif 1978 #endif
1979 /* If window appears above or below another,
1980 even out their heights. */
1981 if (!NILP (XWINDOW (window)->prev))
1982 other = upper = XWINDOW (window)->prev, lower = window;
1983 if (!NILP (XWINDOW (window)->next))
1984 other = lower = XWINDOW (window)->next, upper = window;
1985 if (!NILP (other)
1986 /* Check that OTHER and WINDOW are vertically arrayed. */
1987 && XWINDOW (other)->top != XWINDOW (window)->top
1988 && XWINDOW (other)->height > XWINDOW (window)->height)
1989 {
1990 int total = XWINDOW (other)->height + XWINDOW (window)->height;
1991 struct window *old_selected_window = selected_window;
1992
1993 selected_window = XWINDOW (upper);
1994 change_window_height (total / 2 - XWINDOW (upper)->height, 0);
1995 selected_window = old_selected_window;
1996 }
1977 } 1997 }
1978 } 1998 }
1979 else 1999 else
1980 window = Fget_lru_window (Qnil); 2000 window = Fget_lru_window (Qnil);
1981 2001