(require 'riece-layout)
(require 'riece-signal)
+(autoload 'derived-mode-class "derived")
+
(defvar riece-channel-buffer-format "*Channel:%s*"
"Format of channel message buffer.")
(defvar riece-channel-buffer-alist nil
(defvar riece-update-buffer-functions nil
"Functions to redisplay the buffer.
Local to the buffer in `riece-buffer-list'.")
-
+
(defvar riece-update-indicator-functions
'(riece-update-status-indicators
riece-update-channel-indicator
(riece-connect-signal
'channel-modes-changed
(lambda (signal handback)
- (riece-update-status-indicators)
+ (riece-update-long-channel-indicator)
(force-mode-line-update t))
(lambda (signal)
(and riece-current-channel
(setq riece-long-channel-indicator
(if riece-current-channel
(if (riece-channel-p (riece-identity-prefix riece-current-channel))
- (riece-concat-channel-modes
+ (riece-concat-channel-topic
riece-current-channel
- (riece-concat-channel-topic
+ (riece-concat-channel-modes
riece-current-channel
(riece-format-identity riece-current-channel)))
(riece-format-identity riece-current-channel))
"O"
"-")
riece-user-indicator riece-real-nickname))))
- (setq riece-freeze-indicator
- (with-current-buffer (if (and riece-channel-buffer-mode
- riece-channel-buffer)
- riece-channel-buffer
- riece-dialogue-buffer)
- (if (eq riece-freeze 'own)
- "f"
- (if riece-freeze
- "F"
- "-")))))
+ (walk-windows
+ (lambda (window)
+ (with-current-buffer (window-buffer window)
+ (if (eq (derived-mode-class major-mode)
+ 'riece-dialogue-mode)
+ (setq riece-freeze-indicator
+ (if (eq riece-freeze 'own)
+ "f"
+ (if riece-freeze
+ "F"
+ "-"))))))))
(defun riece-update-buffers (&optional buffers)
(unless buffers
(cdr (riece-identity-assoc identity riece-channel-buffer-alist)))
(defun riece-switch-to-channel (identity)
- (let ((last riece-current-channel))
+ (let ((last riece-current-channel)
+ window)
+ (if (and riece-channel-buffer
+ (setq window (get-buffer-window riece-channel-buffer)))
+ (with-current-buffer riece-channel-buffer
+ (setq riece-channel-buffer-window-point (window-point window))))
(setq riece-current-channel identity
riece-channel-buffer (riece-channel-buffer riece-current-channel))
(run-hook-with-args 'riece-after-switch-to-channel-functions last)