summaryrefslogtreecommitdiff
path: root/lisp/frame.el
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1993-08-02 22:18:34 +0000
committerRoland McGrath <roland@gnu.org>1993-08-02 22:18:34 +0000
commitceab6935fd988c7d31e2bf725f6af3d12773b6ce (patch)
treedfcb41766dec7e55ff4f5e9f890ecb9b0b0f83bc /lisp/frame.el
parentef2c57aca04c8311f3e7bb872bdae769bba9a30b (diff)
downloademacs-ceab6935fd988c7d31e2bf725f6af3d12773b6ce.tar.gz
(other-frame): New function, analogous to other-window.
(ctl-x-5-map): Bind C-x 5 o to other-frame.
Diffstat (limited to 'lisp/frame.el')
-rw-r--r--lisp/frame.el17
1 files changed, 17 insertions, 0 deletions
diff --git a/lisp/frame.el b/lisp/frame.el
index 743758d1095..90469d26b17 100644
--- a/lisp/frame.el
+++ b/lisp/frame.el
@@ -350,6 +350,22 @@ the user during startup."
(cdr param-list))
+(defun other-frame (arg)
+ "Select the ARG'th different frame, deiconify and raise it.
+All frames are arranged in a cyclic order.
+This command selects the frame ARG steps away in that order.
+A negative ARG moves in the opposite order."
+ (interactive "p")
+ (let ((frame (selected-frame)))
+ (while (> arg 0)
+ (setq frame (next-frame frame)
+ arg (1- arg)))
+ (while (< arg 0)
+ (setq frame (previous-frame frame)
+ arg (1- arg)))
+ (make-frame-visible frame)
+ (raise-frame frame)
+ (select-frame frame)))
;;;; Frame configurations
@@ -535,6 +551,7 @@ should use `set-frame-width' instead."
(define-key ctl-x-5-map "2" 'new-frame)
(define-key ctl-x-5-map "0" 'delete-frame)
+(define-key ctl-x-5-map "o" 'other-frame)
(provide 'frame)