From: Julien Danjou <julien@danjou.info>
To: emacs-devel@gnu.org
Cc: Julien Danjou <julien@danjou.info>
Subject: [PATCH] erc-track: fix tracking visibility issue
Date: Mon, 7 Feb 2011 20:08:20 +0100 [thread overview]
Message-ID: <1297105700-9801-1-git-send-email-julien@danjou.info> (raw)
This fix the tracking issue that when executing a command that change window
configuration and may make a ERC buffer visible, ERC would consider it as
read, which is not the case.
Signed-off-by: Julien Danjou <julien@danjou.info>
---
lisp/erc/ChangeLog | 10 ++++++++++
lisp/erc/erc-track.el | 15 +++++++++++----
2 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/lisp/erc/ChangeLog b/lisp/erc/ChangeLog
index ee81bc4..4f2a4c8 100644
--- a/lisp/erc/ChangeLog
+++ b/lisp/erc/ChangeLog
@@ -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
diff --git a/lisp/erc/erc-track.el b/lisp/erc/erc-track.el
index de920eb..a89244f 100644
--- a/lisp/erc/erc-track.el
+++ b/lisp/erc/erc-track.el
@@ -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
--
1.7.2.3
next reply other threads:[~2011-02-07 19:08 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-02-07 19:08 Julien Danjou [this message]
2011-02-09 0:45 ` [PATCH] erc-track: fix tracking visibility issue Michael Olson
2011-02-09 4:09 ` Chong Yidong
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1297105700-9801-1-git-send-email-julien@danjou.info \
--to=julien@danjou.info \
--cc=emacs-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.