diff options
| author | Gerd Moellmann | 2001-02-13 15:44:58 +0000 |
|---|---|---|
| committer | Gerd Moellmann | 2001-02-13 15:44:58 +0000 |
| commit | 5ddc1b75c6b54d2fe1d0501e0148e193546dbfd3 (patch) | |
| tree | 0f9d793afd65b796191e239e825f3784ce00c0ac /src/window.c | |
| parent | 2e6621ca8cf108d51a84f1700aa44c90e7ebb82f (diff) | |
| download | emacs-5ddc1b75c6b54d2fe1d0501e0148e193546dbfd3.tar.gz emacs-5ddc1b75c6b54d2fe1d0501e0148e193546dbfd3.zip | |
(window_loop) <GET_BUFFER_WINDOW>: Prefer to return
the selected window if it is showing the buffer in question.
Diffstat (limited to 'src/window.c')
| -rw-r--r-- | src/window.c | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/src/window.c b/src/window.c index 769aa56a38d..4ddca7138f7 100644 --- a/src/window.c +++ b/src/window.c | |||
| @@ -1669,7 +1669,6 @@ MINIBUF neither nil nor t means never include the minibuffer window.") | |||
| 1669 | (frame, minibuf, window) | 1669 | (frame, minibuf, window) |
| 1670 | Lisp_Object frame, minibuf, window; | 1670 | Lisp_Object frame, minibuf, window; |
| 1671 | { | 1671 | { |
| 1672 | |||
| 1673 | if (NILP (window)) | 1672 | if (NILP (window)) |
| 1674 | window = selected_window; | 1673 | window = selected_window; |
| 1675 | if (NILP (frame)) | 1674 | if (NILP (frame)) |
| @@ -1764,13 +1763,6 @@ window_loop (type, obj, mini, frames) | |||
| 1764 | else | 1763 | else |
| 1765 | window = FRAME_SELECTED_WINDOW (SELECTED_FRAME ()); | 1764 | window = FRAME_SELECTED_WINDOW (SELECTED_FRAME ()); |
| 1766 | 1765 | ||
| 1767 | /* Figure out the last window we're going to mess with. Since | ||
| 1768 | Fnext_window, given the same options, is guaranteed to go in a | ||
| 1769 | ring, we can just use Fprevious_window to find the last one. | ||
| 1770 | |||
| 1771 | We can't just wait until we hit the first window again, because | ||
| 1772 | it might be deleted. */ | ||
| 1773 | |||
| 1774 | windows = window_list_1 (window, mini ? Qt : Qnil, frame_arg); | 1766 | windows = window_list_1 (window, mini ? Qt : Qnil, frame_arg); |
| 1775 | GCPRO1 (windows); | 1767 | GCPRO1 (windows); |
| 1776 | best_window = Qnil; | 1768 | best_window = Qnil; |
| @@ -1799,8 +1791,12 @@ window_loop (type, obj, mini, frames) | |||
| 1799 | ? EQ (window, minibuf_window) | 1791 | ? EQ (window, minibuf_window) |
| 1800 | : 1)) | 1792 | : 1)) |
| 1801 | { | 1793 | { |
| 1802 | UNGCPRO; | 1794 | if (NILP (best_window)) |
| 1803 | return window; | 1795 | best_window = window; |
| 1796 | else if (EQ (window, selected_window)) | ||
| 1797 | /* For compatibility with 20.x, prefer to return | ||
| 1798 | selected-window. */ | ||
| 1799 | best_window = window; | ||
| 1804 | } | 1800 | } |
| 1805 | break; | 1801 | break; |
| 1806 | 1802 | ||