X-Git-Url: http://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-xface.el;h=a4fd4ae39a41257cec3b5ee6c90d5370128f6fdb;hp=005181b02ca7fe3bdab99fbcbeec8cc232c6878c;hb=353a035762d1006943b0432e9b6aa1854de9ec13;hpb=8bb0858f2815a32b2cd471fbdfbda2e86e82eb07 diff --git a/lisp/riece-xface.el b/lisp/riece-xface.el index 005181b..a4fd4ae 100644 --- a/lisp/riece-xface.el +++ b/lisp/riece-xface.el @@ -33,15 +33,13 @@ (require 'riece-display) (require 'riece-lsdb) -(defvar riece-xface-enabled nil) - (defconst riece-xface-description "Display X-Face in IRC buffers.") (defvar lsdb-insert-x-face-function) (defun riece-xface-update-user-list-buffer () - (if riece-xface-enabled + (if (get 'riece-xface 'riece-addon-enabled) (riece-scan-property-region 'riece-identity (point-min)(point-max) (lambda (start end) @@ -63,19 +61,30 @@ (defun riece-xface-requires () '(riece-lsdb)) +(defun riece-xface-user-list-mode-hook () + (add-hook 'riece-update-buffer-functions + 'riece-xface-update-user-list-buffer t t)) + (defun riece-xface-insinuate () + (if riece-user-list-buffer + (with-current-buffer riece-user-list-buffer + (riece-xface-user-list-mode-hook))) (add-hook 'riece-user-list-mode-hook - (lambda () - (add-hook 'riece-update-buffer-functions - 'riece-xface-update-user-list-buffer t t)))) + 'riece-xface-user-list-mode-hook)) + +(defun riece-xface-uninstall () + (if riece-user-list-buffer + (with-current-buffer riece-user-list-buffer + (remove-hook 'riece-update-buffer-functions + 'riece-xface-update-user-list-buffer t))) + (remove-hook 'riece-user-list-mode-hook + 'riece-xface-user-list-mode-hook)) (defun riece-xface-enable () - (setq riece-xface-enabled t) (if riece-current-channel (riece-emit-signal 'user-list-changed riece-current-channel))) (defun riece-xface-disable () - (setq riece-xface-enabled nil) (if riece-current-channel (riece-emit-signal 'user-list-changed riece-current-channel)))