summaryrefslogtreecommitdiff
path: root/lisp/linum.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2017-06-04 19:27:13 +0300
committerEli Zaretskii <eliz@gnu.org>2017-06-04 19:27:13 +0300
commitbd3c6eeca1c69f95ab0c5eea5b542d0334abde68 (patch)
treeb85bc1adc97cc93b99affa5d5a2d00f40c2cb776 /lisp/linum.el
parent7dd9e7e95c1e4502b7a9fd6a18211208bd2914a5 (diff)
downloademacs-bd3c6eeca1c69f95ab0c5eea5b542d0334abde68.tar.gz
Avoid slow startup in daemon mode when global-linum-mode is on
* lisp/linum.el (linum-on): Don't turn on linum-mode in a non-client frame of a daemon session. (Bug#27210)
Diffstat (limited to 'lisp/linum.el')
-rw-r--r--lisp/linum.el11
1 files changed, 10 insertions, 1 deletions
diff --git a/lisp/linum.el b/lisp/linum.el
index 8baa263f0b3..9cfb94dab68 100644
--- a/lisp/linum.el
+++ b/lisp/linum.el
@@ -112,7 +112,16 @@ Linum mode is a buffer-local minor mode."
(define-globalized-minor-mode global-linum-mode linum-mode linum-on)
(defun linum-on ()
- (unless (minibufferp)
+ (unless (or (minibufferp)
+ ;; Turning linum-mode in the daemon's initial frame
+ ;; could significantly slow down startup, if the buffer
+ ;; in which this is done is large, because Emacs thinks
+ ;; the "window" spans the entire buffer then. This
+ ;; could happen when restoring session via desktop.el,
+ ;; if some large buffer was under linum-mode when
+ ;; desktop was saved. So we disable linum-mode for
+ ;; non-client frames in a daemon session.
+ (and (daemonp) (null (frame-parameter nil 'client))))
(linum-mode 1)))
(defun linum-delete-overlays ()