Function: other-frame
other-frame is an interactive and byte-compiled function defined in
frame.el.gz.
Signature
(other-frame ARG)
Documentation
Select the ARGth visible frame on current display, and raise it.
All frames are arranged in a cyclic order. This command selects the frame ARG steps away from the selected frame in that order. A negative ARG moves in the opposite order. It does not select a minibuffer-only frame.
To make this command work properly, you must tell Emacs how the
system (or the window manager) generally handles focus-switching
between windows. If moving the mouse onto a window selects
it (gives it focus), set focus-follows-mouse to t. Otherwise,
that variable should be nil.
Probably introduced at or before Emacs version 19.18.
Key Bindings
Source Code
;; Defined in /usr/src/emacs/lisp/frame.el.gz
(defun other-frame (arg)
"Select the ARGth visible frame on current display, and raise it.
All frames are arranged in a cyclic order. This command selects the
frame ARG steps away from the selected frame in that order. A negative
ARG moves in the opposite order. It does not select a minibuffer-only
frame.
To make this command work properly, you must tell Emacs how the
system (or the window manager) generally handles focus-switching
between windows. If moving the mouse onto a window selects
it (gives it focus), set `focus-follows-mouse' to t. Otherwise,
that variable should be nil."
(interactive "p")
(let ((sframe (selected-frame))
(frame (selected-frame)))
(while (> arg 0)
(setq frame (next-frame frame))
(while (and (not (eq frame sframe))
(not (eq (frame-visible-p frame) t)))
(setq frame (next-frame frame)))
(setq arg (1- arg)))
(while (< arg 0)
(setq frame (previous-frame frame))
(while (and (not (eq frame sframe))
(not (eq (frame-visible-p frame) t)))
(setq frame (previous-frame frame)))
(setq arg (1+ arg)))
(select-frame-set-input-focus frame)))