summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRichard M. Stallman <rms@gnu.org>1997-05-03 06:12:28 +0000
committerRichard M. Stallman <rms@gnu.org>1997-05-03 06:12:28 +0000
commit608a492f3b27d66e6770a63369dba948899fe4c2 (patch)
tree2c0ccc512cf111702db2fac134bcbf5a9d8a3b4c
parent2e3571ffea41b3fea24ce9d86b533539d969c706 (diff)
downloademacs-608a492f3b27d66e6770a63369dba948899fe4c2.tar.gz
(Fdisplay_buffer): If we give up and try other frames,
look again for a window in those frames already showing BUFFER.
-rw-r--r--src/window.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/src/window.c b/src/window.c
index 982a7d1d96d..cf45ea30021 100644
--- a/src/window.c
+++ b/src/window.c
@@ -2219,14 +2219,21 @@ buffer names are handled.")
&& window_height (window) >= window_min_height << 1)
window = Fsplit_window (window, Qnil, Qnil);
/* If Fget_lru_window returned nil, try other approaches. */
+
/* Try visible frames first. */
if (NILP (window))
+ window = Fget_buffer_window (buffer, Qvisible);
+ if (NILP (window))
window = Fget_largest_window (Qvisible);
/* If that didn't work, try iconified frames. */
if (NILP (window))
+ window = Fget_buffer_window (buffer, make_number (0));
+ if (NILP (window))
window = Fget_largest_window (make_number (0));
/* Try invisible frames. */
if (NILP (window))
+ window = Fget_buffer_window (buffer, Qt);
+ if (NILP (window))
window = Fget_largest_window (Qt);
/* As a last resort, make a new frame. */
if (NILP (window))