diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2019-03-13 15:55:39 -0400 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2019-03-13 15:55:39 -0400 |
commit | 7dda131ab02b36362ae63744db66413a9f1df58d (patch) | |
tree | 41ddbd5c0052b56db9425a61d372f2cb621a032b /lisp/emacs-lisp | |
parent | fd71d626dc0554bcb770dc4b97b06edcf42516fb (diff) | |
download | emacs-7dda131ab02b36362ae63744db66413a9f1df58d.tar.gz |
* lisp/emacs-lisp/easy-mmode.el: Fix most obvious bug#34723
(easy-mmode-define-navigation): Don't scroll in the opposite direction of
the movement.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r-- | lisp/emacs-lisp/easy-mmode.el | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el index 0cb9a6fa122..8ac0a1d5938 100644 --- a/lisp/emacs-lisp/easy-mmode.el +++ b/lisp/emacs-lisp/easy-mmode.el @@ -628,6 +628,7 @@ BODY is executed after moving to the destination location." ,body (when was-narrowed (funcall #',narrowfun))))))) (unless name (setq name base-name)) + ;; FIXME: Move most of those functions's bodies to helper functions! `(progn (defun ,next-sym (&optional count) ,(format "Go to the next COUNT'th %s. @@ -649,7 +650,11 @@ Interactively, COUNT is the prefix numeric argument, and defaults to 1." name) `(re-search-forward ,re nil t 2))) (point-max)))) (unless (pos-visible-in-window-p endpt nil t) - (recenter '(0))))))) + (let ((ws (window-start))) + (recenter '(0)) + (if (< (window-start) ws) + ;; recenter scrolled in the wrong direction! + (set-window-start nil ws)))))))) ,@body)) (put ',next-sym 'definition-name ',base) (defun ,prev-sym (&optional count) |