[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Erc-discuss] [PATCH] erc-reuse-frames: new variable
From: |
Jeremy Maitin-Shepard |
Subject: |
[Erc-discuss] [PATCH] erc-reuse-frames: new variable |
Date: |
Tue, 14 Aug 2007 16:23:57 -0400 |
User-agent: |
Gnus/5.110006 (No Gnus v0.6) Emacs/22.0.990 (gnu/linux) |
Adds an erc-reuse-frames variable that acts just as the documentation
for it specifies. Without this change, if erc-join-buffer is set to
`frame', duplicate frames will be created on every reconnect, which is
equivalent to setting `erc-reuse-frames' to nil.
---
erc.el | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)
diff --git a/erc.el b/erc.el
index 324a820..90bf8c9 100644
--- a/erc.el
+++ b/erc.el
@@ -1492,6 +1492,14 @@ This only has effect when `erc-join-buffer' is set to
`frame'."
:group 'erc-buffers
:type 'boolean)
+(defcustom erc-reuse-frames t
+ "*Determines whether new frames are always created.
+Non-nil means that a new frame is not created to display an ERC
+buffer if there is already a window displaying it. This only has
+effect when `erc-join-buffer' is set to `frame'."
+ :group 'erc-buffers
+ :type 'boolean)
+
(defun erc-channel-p (channel)
"Return non-nil if CHANNEL seems to be an IRC channel name."
(cond ((stringp channel)
@@ -1891,14 +1899,16 @@ removed from the list will be disabled."
((eq erc-join-buffer 'bury)
nil)
((eq erc-join-buffer 'frame)
- (funcall '(lambda (frame)
+ (when (or (not erc-reuse-frames)
+ (not (get-buffer-window buffer t)))
+ ((lambda (frame)
(raise-frame frame)
(select-frame frame))
(make-frame (or erc-frame-alist
default-frame-alist)))
(switch-to-buffer buffer)
(when erc-frame-dedicated-flag
- (set-window-dedicated-p (selected-window) t)))
+ (set-window-dedicated-p (selected-window) t))))
(t
(if (active-minibuffer-window)
(display-buffer buffer)
--
1.5.1.6
- [Erc-discuss] [PATCH] erc-reuse-frames: new variable,
Jeremy Maitin-Shepard <=