summaryrefslogtreecommitdiff
path: root/lisp/paren.el
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2007-04-19 17:21:37 +0000
committerChong Yidong <cyd@stupidchicken.com>2007-04-19 17:21:37 +0000
commitbbcda6be9a90b901ec188bf4227f4f09e64498e6 (patch)
tree446c03b150bdc4ff24f6bac9a7cc4e25cb91cd63 /lisp/paren.el
parentbae6731f9ca7cd09bee6517272422cded5dcb4e8 (diff)
downloademacs-bbcda6be9a90b901ec188bf4227f4f09e64498e6.tar.gz
(show-paren-function): Reset window-start to avoid recentering.
Diffstat (limited to 'lisp/paren.el')
-rw-r--r--lisp/paren.el8
1 files changed, 7 insertions, 1 deletions
diff --git a/lisp/paren.el b/lisp/paren.el
index 95f718d5683..17f0c401901 100644
--- a/lisp/paren.el
+++ b/lisp/paren.el
@@ -143,6 +143,7 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time."
(let ((oldpos (point))
(dir (cond ((eq (syntax-class (syntax-after (1- (point)))) 5) -1)
((eq (syntax-class (syntax-after (point))) 4) 1)))
+ (window-start (window-start))
pos mismatch face)
;;
;; Find the other end of the sexp.
@@ -247,7 +248,12 @@ in `show-paren-style' after `show-paren-delay' seconds of Emacs idle time."
;;
;; Always set the overlay face, since it varies.
(overlay-put show-paren-overlay 'priority show-paren-priority)
- (overlay-put show-paren-overlay 'face face)))
+ (overlay-put show-paren-overlay 'face face))
+ ;; If there are continued lines, the above operations can
+ ;; force redisplay to recenter the window (since there is no
+ ;; way for it to know that the overlay changes to the buffer
+ ;; are harmless). So reset the window-start.
+ (set-window-start (selected-window) window-start))
;; show-paren-mode is nil in this buffer.
(and show-paren-overlay
(delete-overlay show-paren-overlay))