]> git.eshelyaron.com Git - emacs.git/commitdiff
ibuffer-do-view-other-frame: Display each buffer in a new frame
authorTino Calancha <tino.calancha@gmail.com>
Fri, 23 Sep 2016 06:16:15 +0000 (15:16 +0900)
committerTino Calancha <tino.calancha@gmail.com>
Fri, 23 Sep 2016 06:16:15 +0000 (15:16 +0900)
* lisp/ibuffer.el (ibuffer-do-view-1):
When TYPE equals 'other-frame, then display each buffer
in a new frame (Bug#24086).

lisp/ibuffer.el

index 0336f1d41b1eaa6298f89825dd60c5f2e67e05c0..e9655358c26218b5025774c67c2b389aa51ee157 100644 (file)
@@ -1143,17 +1143,17 @@ a new window in the current frame, splitting vertically."
   (ibuffer-do-view-1 (if other-frame 'other-frame 'horizontally)))
 
 (defun ibuffer-do-view-1 (type)
-  (let ((marked-bufs (ibuffer-get-marked-buffers)))
-    (when (null marked-bufs)
-      (setq marked-bufs (list (ibuffer-current-buffer t))))
+  (let ((marked-bufs (or (ibuffer-get-marked-buffers)
+                         (list (ibuffer-current-buffer t)))))
     (unless (and (eq type 'other-frame)
                 (not ibuffer-expert)
                 (> (length marked-bufs) 3)
                 (not (y-or-n-p (format "Really create a new frame for %s buffers? "
                                        (length marked-bufs)))))
-      (set-buffer-modified-p nil)
-      (delete-other-windows)
-      (switch-to-buffer (pop marked-bufs))
+      (unless (eq type 'other-frame)
+        (set-buffer-modified-p nil)
+        (delete-other-windows)
+        (switch-to-buffer (pop marked-bufs)))
       (let ((height (/ (1- (if (eq type 'horizontally) (frame-width)
                             (frame-height)))
                       (1+ (length marked-bufs)))))