X-Git-Url: https://cgit.sxemacs.org/?p=riece;a=blobdiff_plain;f=lisp%2Friece-mini.el;h=2c8800696d8803c3fb37016724ff83b08be62563;hp=a66851a636ae5364024a9fbc927846e1eac2690c;hb=16490f74b1fd627bd05dd22cb4213bcbe164513b;hpb=3617db0e4dbd6b75aa7c63eb4ab1e360d552f121 diff --git a/lisp/riece-mini.el b/lisp/riece-mini.el index a66851a..2c88006 100644 --- a/lisp/riece-mini.el +++ b/lisp/riece-mini.el @@ -41,12 +41,13 @@ ;;; Code: (require 'riece-message) +(require 'riece-biff) (defgroup riece-mini nil "riece on minibuffer" :group 'riece) -(defcustom riece-mini-backlog-size 10 +(defcustom riece-mini-backlog-size 5 "*Line numbers for logging back log." :type 'integer :group 'riece-mini) @@ -117,12 +118,20 @@ If twice (C-u C-u), then ask the channel." (defun riece-mini-show-backlog () "Send back logs to minibuffer." (interactive) - (let ((max-mini-window-height (1+ riece-mini-backlog-size)) - (resize-mini-windows t)) - (when riece-mini-backlog-history - (setq riece-mini-backlog-shown t) - (riece-mini-message-no-log - (mapconcat 'identity riece-mini-backlog-history "\n"))))) + (when riece-mini-backlog-history + (let ((height (1+ riece-mini-backlog-size))) + (mapc #'(lambda (string) + (setq height (+ height + (/ (length string) (window-width))))) + riece-mini-backlog-history) + (let ((max-mini-window-height height) + (resize-mini-windows t)) + (setq riece-mini-backlog-shown t) + (when (and (memq 'riece-biff riece-addons) + riece-biff-enabled) + (riece-biff-clear)) + (riece-mini-message-no-log + "%s" (mapconcat #'identity riece-mini-backlog-history "\n")))))) (defun riece-mini-pre-command () (when riece-mini-backlog-shown @@ -130,6 +139,10 @@ If twice (C-u C-u), then ask the channel." (setq riece-mini-backlog-shown nil) (riece-mini-message-no-log "")))) +(defun riece-mini-requires () + (if (memq 'riece-biff riece-addons) + '(riece-biff))) + (defun riece-mini-insinuate () (add-hook 'riece-after-display-message-functions 'riece-mini-display-message-function)