erc-commit
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Erc-commit] [commit][emacs22] erc-reuse-frames: new variable


From: mwolson
Subject: [Erc-commit] [commit][emacs22] erc-reuse-frames: new variable
Date: Sun, 14 Oct 2007 00:49:10 -0400

commit 0e90a8e09d6c9fa48c3eb6acd6471218a6eab009
Author: Jeremy Maitin-Shepard <address@hidden>
Date:   Tue Aug 14 16:23:57 2007 -0400

    erc-reuse-frames: new variable
    
    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.

diff --git a/erc.el b/erc.el
index cee601f..1628fbd 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)




reply via email to

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