comparison lisp/ibuf-ext.el @ 65180:6705c5e7dee2

(ibuffer-auto-update-changed): Use `frame-or-buffer-changed-p' to check whether we need to update. (ibuffer-auto-mode): Don't advise `get-buffer-create' and `kill-buffer'. Initialise `ibuffer-auto-buffers-changed' as a `frame-or-buffer-changed-p' state vector instead.
author John Paul Wallington <jpw@pobox.com>
date Sun, 28 Aug 2005 06:50:29 +0000
parents 41bb365f41c4
children 7cc413612d3d a3716f7538f2
comparison
equal deleted inserted replaced
65179:a308f717214a 65180:6705c5e7dee2
220 (or 220 (or
221 (ibuffer-included-in-filters-p buf ibuffer-filtering-qualifiers) 221 (ibuffer-included-in-filters-p buf ibuffer-filtering-qualifiers)
222 (ibuffer-buf-matches-predicates buf ibuffer-always-show-predicates))))) 222 (ibuffer-buf-matches-predicates buf ibuffer-always-show-predicates)))))
223 223
224 (defun ibuffer-auto-update-changed () 224 (defun ibuffer-auto-update-changed ()
225 (when ibuffer-auto-buffers-changed 225 (when (frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed)
226 (setq ibuffer-auto-buffers-changed nil)
227 (mapcar #'(lambda (buf) 226 (mapcar #'(lambda (buf)
228 (ignore-errors 227 (ignore-errors
229 (with-current-buffer buf 228 (with-current-buffer buf
230 (when (and ibuffer-auto-mode 229 (when (and ibuffer-auto-mode
231 (eq major-mode 'ibuffer-mode)) 230 (eq major-mode 'ibuffer-mode))
241 (error "This buffer is not in Ibuffer mode")) 240 (error "This buffer is not in Ibuffer mode"))
242 (set (make-local-variable 'ibuffer-auto-mode) 241 (set (make-local-variable 'ibuffer-auto-mode)
243 (if arg 242 (if arg
244 (plusp arg) 243 (plusp arg)
245 (not ibuffer-auto-mode))) 244 (not ibuffer-auto-mode)))
246 (defadvice get-buffer-create (after ibuffer-notify-create activate) 245 (frame-or-buffer-changed-p 'ibuffer-auto-buffers-changed)
247 (setq ibuffer-auto-buffers-changed t))
248 (defadvice kill-buffer (after ibuffer-notify-kill activate)
249 (setq ibuffer-auto-buffers-changed t))
250 (add-hook 'post-command-hook 'ibuffer-auto-update-changed) 246 (add-hook 'post-command-hook 'ibuffer-auto-update-changed)
251 (ibuffer-update-mode-name)) 247 (ibuffer-update-mode-name))
252 248
253 ;;;###autoload 249 ;;;###autoload
254 (defun ibuffer-mouse-filter-by-mode (event) 250 (defun ibuffer-mouse-filter-by-mode (event)