diff options
| author | Richard M. Stallman <rms@gnu.org> | 2004-07-17 14:59:02 +0000 |
|---|---|---|
| committer | Richard M. Stallman <rms@gnu.org> | 2004-07-17 14:59:02 +0000 |
| commit | 403de3b40ec8402fd2c24dc73b8ff4596921cd64 (patch) | |
| tree | ed7f6623111ab4c4294998b9a96e6ec53adbb5e3 | |
| parent | 15479e8b2fc5944d3b9254edbec69c4d2f3bb86c (diff) | |
| download | emacs-403de3b40ec8402fd2c24dc73b8ff4596921cd64.tar.gz | |
(coordinates_in_window): Inside the window but outside
its box to the L or R, return ON_VERTICAL_BORDER.
(window_list_1): Rotate the list to start with WINDOW.
| -rw-r--r-- | src/window.c | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/src/window.c b/src/window.c index c09eaab85ba..907cc113916 100644 --- a/src/window.c +++ b/src/window.c @@ -670,7 +670,7 @@ coordinates_in_window (w, x, y) /* Outside any interesting column? */ if (*x < left_x || *x > right_x) - return ON_NOTHING; + return ON_VERTICAL_BORDER; lmargin_width = window_box_width (w, LEFT_MARGIN_AREA); rmargin_width = window_box_width (w, RIGHT_MARGIN_AREA); @@ -1799,7 +1799,7 @@ static Lisp_Object window_list_1 (window, minibuf, all_frames) Lisp_Object window, minibuf, all_frames; { - Lisp_Object tail, list; + Lisp_Object tail, list, rest; decode_next_window_args (&window, &minibuf, &all_frames); list = Qnil; @@ -1808,7 +1808,17 @@ window_list_1 (window, minibuf, all_frames) if (candidate_window_p (XCAR (tail), window, minibuf, all_frames)) list = Fcons (XCAR (tail), list); - return Fnreverse (list); + /* Rotate the list to start with WINDOW. */ + list = Fnreverse (list); + rest = Fmemq (window, list); + if (!NILP (rest) && !EQ (rest, list)) + { + for (tail = list; XCDR (tail) != rest; tail = XCDR (tail)) + ; + XSETCDR (tail, Qnil); + list = nconc2 (rest, list); + } + return list; } |
