aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRichard M. Stallman1995-11-21 20:12:52 +0000
committerRichard M. Stallman1995-11-21 20:12:52 +0000
commitd07f802a2c5eb9d21356e1a70b76de78704dbd00 (patch)
tree2388acad23e0971b6d2ca18d31f75e2e0c3d26f0
parente983fdb2728b0f3488396bbe05b0c40ca568e9ff (diff)
downloademacs-d07f802a2c5eb9d21356e1a70b76de78704dbd00.tar.gz
emacs-d07f802a2c5eb9d21356e1a70b76de78704dbd00.zip
(Fdisplay_buffer): Always deiconify the window's frame.
(display_buffer_1): New subroutine.
-rw-r--r--src/window.c35
1 files changed, 23 insertions, 12 deletions
diff --git a/src/window.c b/src/window.c
index fc3f7af59a5..035b6a78c23 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1911,6 +1911,21 @@ before each command.")
1911 return window; 1911 return window;
1912} 1912}
1913 1913
1914/* Deiconify the frame containing the window WINDOW, then return WINDOW. */
1915
1916static Lisp_Object
1917display_buffer_1 (window)
1918 Lisp_Object window;
1919{
1920#ifdef MULTI_FRAME
1921 FRAME_PTR f = XFRAME (WINDOW_FRAME (XWINDOW (window)));
1922 FRAME_SAMPLE_VISIBILITY (f);
1923 if (FRAME_ICONIFIED_P (f))
1924 Fmake_frame_visible (WINDOW_FRAME (XWINDOW (window)));
1925#endif
1926 return window;
1927}
1928
1914DEFUN ("display-buffer", Fdisplay_buffer, Sdisplay_buffer, 1, 2, 1929DEFUN ("display-buffer", Fdisplay_buffer, Sdisplay_buffer, 1, 2,
1915 "bDisplay buffer: \nP", 1930 "bDisplay buffer: \nP",
1916 "Make BUFFER appear in some window but don't select it.\n\ 1931 "Make BUFFER appear in some window but don't select it.\n\
@@ -1933,7 +1948,7 @@ Returns the window displaying BUFFER.")
1933 1948
1934 if (NILP (not_this_window) 1949 if (NILP (not_this_window)
1935 && XBUFFER (XWINDOW (selected_window)->buffer) == XBUFFER (buffer)) 1950 && XBUFFER (XWINDOW (selected_window)->buffer) == XBUFFER (buffer))
1936 return selected_window; 1951 return display_buffer_1 (selected_window);
1937 1952
1938 /* See if the user has specified this buffer should appear 1953 /* See if the user has specified this buffer should appear
1939 in the selected window. */ 1954 in the selected window. */
@@ -1943,14 +1958,14 @@ Returns the window displaying BUFFER.")
1943 if (!NILP (tem)) 1958 if (!NILP (tem))
1944 { 1959 {
1945 Fswitch_to_buffer (buffer, Qnil); 1960 Fswitch_to_buffer (buffer, Qnil);
1946 return selected_window; 1961 return display_buffer_1 (selected_window);
1947 } 1962 }
1948 1963
1949 tem = Fassoc (XBUFFER (buffer)->name, Vsame_window_buffer_names); 1964 tem = Fassoc (XBUFFER (buffer)->name, Vsame_window_buffer_names);
1950 if (!NILP (tem)) 1965 if (!NILP (tem))
1951 { 1966 {
1952 Fswitch_to_buffer (buffer, Qnil); 1967 Fswitch_to_buffer (buffer, Qnil);
1953 return selected_window; 1968 return display_buffer_1 (selected_window);
1954 } 1969 }
1955 1970
1956 for (tem = Vsame_window_regexps; CONSP (tem); tem = XCONS (tem)->cdr) 1971 for (tem = Vsame_window_regexps; CONSP (tem); tem = XCONS (tem)->cdr)
@@ -1960,7 +1975,7 @@ Returns the window displaying BUFFER.")
1960 && fast_string_match (car, XBUFFER (buffer)->name) >= 0) 1975 && fast_string_match (car, XBUFFER (buffer)->name) >= 0)
1961 { 1976 {
1962 Fswitch_to_buffer (buffer, Qnil); 1977 Fswitch_to_buffer (buffer, Qnil);
1963 return selected_window; 1978 return display_buffer_1 (selected_window);
1964 } 1979 }
1965 else if (CONSP (car) 1980 else if (CONSP (car)
1966 && STRINGP (XCONS (car)->car) 1981 && STRINGP (XCONS (car)->car)
@@ -1968,7 +1983,7 @@ Returns the window displaying BUFFER.")
1968 XBUFFER (buffer)->name) >= 0) 1983 XBUFFER (buffer)->name) >= 0)
1969 { 1984 {
1970 Fswitch_to_buffer (buffer, Qnil); 1985 Fswitch_to_buffer (buffer, Qnil);
1971 return selected_window; 1986 return display_buffer_1 (selected_window);
1972 } 1987 }
1973 } 1988 }
1974 } 1989 }
@@ -1986,11 +2001,7 @@ Returns the window displaying BUFFER.")
1986 if (!NILP (window) 2001 if (!NILP (window)
1987 && (NILP (not_this_window) || !EQ (window, selected_window))) 2002 && (NILP (not_this_window) || !EQ (window, selected_window)))
1988 { 2003 {
1989#ifdef MULTI_FRAME 2004 return display_buffer_1 (window);
1990 if (FRAME_ICONIFIED_P (XFRAME (WINDOW_FRAME (XWINDOW (window)))))
1991 Fmake_frame_visible (WINDOW_FRAME (XWINDOW (window)));
1992#endif
1993 return window;
1994 } 2005 }
1995 2006
1996 /* Certain buffer names get special handling. */ 2007 /* Certain buffer names get special handling. */
@@ -2027,7 +2038,7 @@ Returns the window displaying BUFFER.")
2027 { 2038 {
2028 window = Fframe_selected_window (call0 (Vpop_up_frame_function)); 2039 window = Fframe_selected_window (call0 (Vpop_up_frame_function));
2029 Fset_window_buffer (window, buffer); 2040 Fset_window_buffer (window, buffer);
2030 return window; 2041 return display_buffer_1 (window);
2031 } 2042 }
2032#endif /* MULTI_FRAME */ 2043#endif /* MULTI_FRAME */
2033 2044
@@ -2139,7 +2150,7 @@ Returns the window displaying BUFFER.")
2139 window = Fget_lru_window (Qnil); 2150 window = Fget_lru_window (Qnil);
2140 2151
2141 Fset_window_buffer (window, buffer); 2152 Fset_window_buffer (window, buffer);
2142 return window; 2153 return display_buffer_1 (window);
2143} 2154}
2144 2155
2145void 2156void