* riece-display.el (riece-configure-windows): Use window-buffer
[riece] / lisp / riece-display.el
index b99f12b..bd6f0e2 100644 (file)
   :group 'riece-looks)
 
 (defun riece-configure-windows ()
-  (let ((buffer (current-buffer))
+  (let ((buffer (window-buffer))
        (show-user-list
         (and riece-user-list-buffer-mode
              riece-current-channel
              ;; User list buffer is nuisance for private conversation.
              (riece-channel-p riece-current-channel))))
+    ;; Can't expand minibuffer to full frame.
+    (if (eq (selected-window) (minibuffer-window))
+       (other-window 1))
     (delete-other-windows)
     (if (and riece-current-channel
             (or show-user-list riece-channel-list-buffer-mode))
        (unless (riece-frozen riece-user-list-buffer)
          (set-window-start (get-buffer-window riece-user-list-buffer)
                            (point-min)))))
-  (if (get-buffer-window riece-channel-list-buffer)
+  (if (and riece-channel-list-buffer
+          (get-buffer-window riece-channel-list-buffer))
       (with-current-buffer riece-channel-list-buffer
        (unless (riece-frozen riece-channel-list-buffer)
          (set-window-start (get-buffer-window riece-channel-list-buffer)
                            (point-min))))))
 
 (defun riece-user-list-update-buffer ()
-  (if (get-buffer riece-user-list-buffer)
+  (if (and riece-user-list-buffer
+          (get-buffer riece-user-list-buffer))
       (save-excursion
        (set-buffer riece-user-list-buffer)
        (when (and riece-current-channel
              (setq users (cdr users))))))))
 
 (defun riece-channel-list-update-buffer ()
-  (if (get-buffer riece-channel-list-buffer)
+  (if (and riece-channel-list-buffer
+          (get-buffer riece-channel-list-buffer))
       (save-excursion
        (set-buffer riece-channel-list-buffer)
        (let ((inhibit-read-only t)
          (erase-buffer)
          (while channels
            (if (car channels)
-               (insert (format "%2d:%s\n" index (car channels))))
+               (insert (format "%2d: %s\n" index (car channels))))
            (setq index (1+ index)
                  channels (cdr channels)))))))
 
-(defsubst riece-update-channel-indicator ()
+(defun riece-update-channel-indicator ()
   (setq riece-channel-indicator
        (if riece-current-channel
            (riece-concat-current-channel-modes
 
 (defun riece-update-buffers ()
   (run-hooks 'riece-update-buffer-functions)
-  (force-mode-line-update t))
+  (force-mode-line-update t)
+  (run-hooks 'riece-update-buffers-hook))
 
 (eval-when-compile
   (autoload 'riece-channel-mode "riece"))
              identity riece-channel-buffer-alist))
        riece-user-list-buffer 
        (cdr (riece-identity-assoc-no-server
-             identity riece-user-list-buffer-alist))))
+             identity riece-user-list-buffer-alist)))
+  (run-hooks 'riece-channel-switch-hook))
 
 (defun riece-join-channel (channel-name)
   (let ((identity (riece-make-identity channel-name)))
   (riece-update-buffers)
   (if (or force
          (funcall riece-configure-windows-predicate))
-      (funcall riece-configure-windows-function)))
+      (funcall riece-configure-windows-function))
+  (run-hooks 'riece-redisplay-buffers-hook))
 
 (provide 'riece-display)
+
+;;; riece-display.el ends here