summaryrefslogtreecommitdiff
path: root/lisp/frame.el
diff options
context:
space:
mode:
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)