Fix tracking visibility in ERC.
* lisp/erc/erc-track.el (erc-window-configuration-change): New function. This will allow to track buffer visibility when a command is finished to executed. Idea stolen from rcirc. (track): Put erc-window-configuration-change in window-configuration-change-hook. (erc-modified-channels-update): Remove erc-modified-channels-update from post-command-hook after update.
This commit is contained in:
parent
9218b9bd6c
commit
69b2604f77
2 changed files with 21 additions and 4 deletions
|
@ -1,3 +1,13 @@
|
|||
2011-02-07 Julien Danjou <julien@danjou.info>
|
||||
|
||||
* erc-track.el (erc-window-configuration-change): New function.
|
||||
This will allow to track buffer visibility when a command is
|
||||
finished to executed. Idea stolen from rcirc.
|
||||
(track): Put erc-window-configuration-change in
|
||||
window-configuration-change-hook.
|
||||
(erc-modified-channels-update): Remove
|
||||
erc-modified-channels-update from post-command-hook after update.
|
||||
|
||||
2011-01-31 Antoine Levitt <antoine.levitt@gmail.com> (tiny change)
|
||||
|
||||
* erc-track.el (track): Don't reset erc-modified-channels-object
|
||||
|
|
|
@ -653,7 +653,7 @@ module, otherwise the keybindings will not do anything useful."
|
|||
(defadvice switch-to-buffer (after erc-update (&rest args) activate)
|
||||
(erc-modified-channels-update))
|
||||
(add-hook 'window-configuration-change-hook
|
||||
'erc-modified-channels-update))
|
||||
'erc-window-configuration-change))
|
||||
(add-hook 'erc-insert-post-hook 'erc-track-modified-channels)
|
||||
(add-hook 'erc-disconnected-hook 'erc-modified-channels-update))
|
||||
;; enable the tracking keybindings
|
||||
|
@ -675,7 +675,7 @@ module, otherwise the keybindings will not do anything useful."
|
|||
(if (featurep 'xemacs)
|
||||
(ad-disable-advice 'switch-to-buffer 'after 'erc-update)
|
||||
(remove-hook 'window-configuration-change-hook
|
||||
'erc-modified-channels-update))
|
||||
'erc-window-configuration-change))
|
||||
(remove-hook 'erc-disconnected-hook 'erc-modified-channels-update)
|
||||
(remove-hook 'erc-insert-post-hook 'erc-track-modified-channels))
|
||||
;; disable the tracking keybindings
|
||||
|
@ -730,6 +730,12 @@ only consider active buffers visible.")
|
|||
|
||||
;;; Tracking the channel modifications
|
||||
|
||||
(defun erc-window-configuration-change ()
|
||||
(unless (minibuffer-window-active-p (minibuffer-window))
|
||||
;; delay this until command has finished to make sure window is
|
||||
;; actually visible before clearing activity
|
||||
(add-hook 'post-command-hook 'erc-modified-channels-update)))
|
||||
|
||||
(defvar erc-modified-channels-update-inside nil
|
||||
"Variable to prevent running `erc-modified-channels-update' multiple
|
||||
times. Without it, you cannot debug `erc-modified-channels-display',
|
||||
|
@ -757,8 +763,9 @@ ARGS are ignored."
|
|||
(erc-modified-channels-remove-buffer buffer))))
|
||||
erc-modified-channels-alist)
|
||||
(when removed-channel
|
||||
(erc-modified-channels-display)
|
||||
(force-mode-line-update t)))))
|
||||
(erc-modified-channels-display)
|
||||
(force-mode-line-update t)))
|
||||
(remove-hook 'post-command-hook 'erc-modified-channels-update)))
|
||||
|
||||
(defvar erc-track-mouse-face (if (featurep 'xemacs)
|
||||
'modeline-mousable
|
||||
|
|
Loading…
Add table
Reference in a new issue