]> git.eshelyaron.com Git - emacs.git/commitdiff
Avoid slow startup in daemon mode when global-linum-mode is on
authorEli Zaretskii <eliz@gnu.org>
Sun, 4 Jun 2017 16:27:13 +0000 (19:27 +0300)
committerEli Zaretskii <eliz@gnu.org>
Sun, 4 Jun 2017 16:27:13 +0000 (19:27 +0300)
* lisp/linum.el (linum-on): Don't turn on linum-mode in a
non-client frame of a daemon session.  (Bug#27210)

lisp/linum.el

index 8baa263f0b36a898aad2373d0b08ca365f63700a..9cfb94dab68c6c5456ede1fe0e9273920c98fb25 100644 (file)
@@ -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 ()