1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-27 07:37:33 +00:00

Fix bug #19157 with incorrect hscroll during I-search.

lisp/isearch.el (isearch-update): Don't assume
 pos-visible-in-window-p will return nil when point is hscrolled
 out of view.
This commit is contained in:
Eli Zaretskii 2014-11-24 15:32:14 +02:00
parent e01ec2ed08
commit 9faf591a66
2 changed files with 16 additions and 3 deletions

View File

@ -1,3 +1,9 @@
2014-11-24 Eli Zaretskii <eliz@gnu.org>
* isearch.el (isearch-update): Don't assume
pos-visible-in-window-p will return nil when point is hscrolled
out of view. (Bug#19157)
2014-11-20 Andrey Kotlarski <m00naticus@gmail.com>
* net/eww.el (eww-browse-url): Optionally create new eww buffer.

View File

@ -974,10 +974,17 @@ The last thing it does is to run `isearch-update-post-hook'."
(other-window 1))
(goto-char found-point))
;; Keep same hscrolling as at the start of the search when possible
(let ((current-scroll (window-hscroll)))
(let ((current-scroll (window-hscroll))
visible-p)
(set-window-hscroll (selected-window) isearch-start-hscroll)
(unless (pos-visible-in-window-p)
(set-window-hscroll (selected-window) current-scroll))))
(setq visible-p (pos-visible-in-window-p nil nil t))
(if (or (not visible-p)
;; When point is not visible because of hscroll,
;; pos-visible-in-window-p returns non-nil, but
;; the X coordinate it returns is 1 pixel beyond
;; the last visible one.
(>= (car visible-p) (window-body-width nil t)))
(set-window-hscroll (selected-window) current-scroll))))
(if isearch-other-end
(if (< isearch-other-end (point)) ; isearch-forward?
(isearch-highlight isearch-other-end (point))