erc-discuss
[Top][All Lists]
Advanced

[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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]