]> git.eshelyaron.com Git - emacs.git/commitdiff
* src/window.c (other-window-scroll-default): New variable (bug#51210).
authorJuri Linkov <juri@linkov.net>
Tue, 11 Jan 2022 17:28:52 +0000 (19:28 +0200)
committerJuri Linkov <juri@linkov.net>
Tue, 11 Jan 2022 17:28:52 +0000 (19:28 +0200)
(Fother_window_for_scrolling): Use it.

etc/NEWS
src/window.c

index d256342f439e029201e80658cb4c2ebab41bd6ba..d7281467c6853a47261fca4c5ac389385d776d29 100644 (file)
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -269,6 +269,8 @@ For example, a 'display-buffer-alist' entry of
 will make the body of the chosen window 40 columns wide.  For the
 height use 'window-height' in combination with 'body-lines'.
 
+*** 'other-window-scroll-default' can define the other window to scroll.
+
 ** Rcirc
 
 +++
index 1e7c26b82e940584ecb5473dd3e0d623cb050511..7155f0e6bc363f859deb1dfae12cc8f0109bbb18 100644 (file)
@@ -6307,10 +6307,12 @@ followed by all visible frames on the current terminal.  */)
       if (NILP (window))
        window = display_buffer (Vother_window_scroll_buffer, Qt, Qnil);
     }
+  else if (FUNCTIONP (Vother_window_scroll_default))
+    /* Nothing specified; try to get a window from the function.  */
+    window = call0 (Vother_window_scroll_default);
   else
     {
-      /* Nothing specified; look for a neighboring window on the same
-        frame.  */
+      /* Otherwise, look for a neighboring window on the same frame.  */
       window = Fnext_window (selected_window, Qlambda, Qnil);
 
       if (EQ (window, selected_window))
@@ -8268,6 +8270,14 @@ is displayed in the `mode-line' face.  */);
               doc: /* If this is a live buffer, \\[scroll-other-window] should scroll its window.  */);
   Vother_window_scroll_buffer = Qnil;
 
+  DEFVAR_LISP ("other-window-scroll-default", Vother_window_scroll_default,
+              doc: /* Function that provides the window to scroll by \\[scroll-other-window].
+The function `other-window-for-scrolling' first tries to use
+`minibuffer-scroll-window' and `other-window-scroll-buffer'.
+But when both are nil, then by default it uses a neighboring window.
+This variable is intended to get another default instead of `next-window'.  */);
+  Vother_window_scroll_default = Qnil;
+
   DEFVAR_BOOL ("auto-window-vscroll", auto_window_vscroll_p,
               doc: /* Non-nil means to automatically adjust `window-vscroll' to view tall lines.  */);
   auto_window_vscroll_p = true;