Check to make sure the buffer hasn't been deleted.

This commit is contained in:
Matthew Fidler 2016-04-06 11:01:16 -05:00
parent 2ad7e8409e
commit d2ad4e7784

View file

@ -1354,7 +1354,9 @@ FACE is the face to recolor the icon to."
(defun mode-icons--recolor-minor-mode-image (mode active &optional face) (defun mode-icons--recolor-minor-mode-image (mode active &optional face)
"Recolor MODE image based on if the window is ACTIVE. "Recolor MODE image based on if the window is ACTIVE.
Use FACE when specified." Use FACE when specified."
(let ((icon-spec (get-text-property 0 'mode-icons-p mode))) (let ((icon-spec (get-text-property 0 'mode-icons-p mode))
(display)
(face (or face)))
(cond (cond
((and icon-spec (memq (nth 2 icon-spec) '(xpm xpm-bw))) ((and icon-spec (memq (nth 2 icon-spec) '(xpm xpm-bw)))
(propertize mode 'display (mode-icons-get-icon-display (propertize mode 'display (mode-icons-get-icon-display
@ -1678,37 +1680,40 @@ When ENABLE is non-nil, enable the changes to the mode line."
(run-with-idle-timer (run-with-idle-timer
0.1 nil `(lambda() 0.1 nil `(lambda()
;; Reset the minor mode icons ;; Reset the minor mode icons
(when (buffer-live-p ,(current-buffer))
(with-current-buffer ,(current-buffer) (with-current-buffer ,(current-buffer)
(mode-icons-set-minor-mode-icon)))))) (mode-icons-set-minor-mode-icon)))))))
;; (defadvice powerline-minor-modes (around mode-icons-advice (&optional face pad) activate)
;; "Enable icon color changes in `powerline-minor-modes'."
;; (mode-icons--recolor-string (progn ad-do-it) nil face))
(add-hook 'emacs-startup-hook #'mode-icons-reset) (add-hook 'emacs-startup-hook #'mode-icons-reset)
(eval-after-load 'powerline (eval-after-load 'powerline
'(progn '(progn
(declare-function mode-icons--real-powerline-minor-modes "powerline") (declare-function mode-icons--real-powerline-minor-modes "powerline")
(fset 'mode-icons--real-powerline-minor-modes (symbol-function #'powerline-minor-modes)) (fset 'mode-icons--real-powerline-minor-modes #'powerline-minor-modes)
(defun mode-icons--powerline-minor-modes (&optional face pad) (defun mode-icons--powerline-minor-modes (&optional face pad)
"Powerline minor modes is replaced by this function. "Powerline minor modes is replaced by this function.
FACE is the face to use. FACE is the face to use.
PAD is the padding around the minor modes." PAD is the padding around the minor modes.
The original is called if `mode-icons-mode' is disabled. It is
saved in `mode-icons--real-powerline-minor-modes'."
(if mode-icons-mode (if mode-icons-mode
(powerline-raw (format-mode-line (mode-icons--generate-minor-mode-list face) face) face pad) (powerline-raw (format-mode-line (mode-icons--generate-minor-mode-list face) face) face pad)
(mode-icons--real-powerline-minor-modes face pad))) (mode-icons--real-powerline-minor-modes face pad)))
(declare-function mode-icons--real-powerline-major-mode "powerline") (declare-function mode-icons--real-powerline-major-mode "powerline")
(fset 'mode-icons--real-powerline-major-mode (symbol-function #'powerline-minor-modes)) (fset 'mode-icons--real-powerline-major-mode #'powerline-minor-modes)
(defun mode-icons--powerline-major-mode (&optional face pad) (defun mode-icons--powerline-major-mode (&optional face pad)
"Powerline major modes is replaced by this function. "Powerline major modes is replaced by this function.
FACE is the face to use. FACE is the face to use.
PAD is the padding around the minor modes." PAD is the padding around the minor modes.
The original is called if `mode-icons-mode' is disabled. It is
saved in `mode-icons--real-powerline-major-mode'."
(if mode-icons-mode (if mode-icons-mode
(powerline-raw (format-mode-line (mode-icons--generate-major-mode-item face) face) face pad) (powerline-raw (format-mode-line (mode-icons--generate-major-mode-item face) face) face pad)
(mode-icons--real-powerline-major-mode face pad))) (mode-icons--real-powerline-major-mode face pad)))
(fset 'powerline-major-mode (symbol-function #'mode-icons--powerline-major-mode)))) (fset 'powerline-major-mode #'mode-icons--powerline-major-mode)))
(eval-after-load 'emojify (eval-after-load 'emojify
'(progn '(progn