2001-08-10 Gerd Moellmann <gerd@gnu.org>
+ * frame.el (select-frame-set-input-focus): New function
+ extracted from other-frame.
+ (other-frame): Use it.
+ (next-multiframe-window, previous-multiframe-window): Use it.
+
* isearch.el (isearch-other-meta-char): Don't switch to the
buffer of a window clicked on, when the current buffer is
in Isearch mode.
(interactive)
(select-window (next-window (selected-window)
(> (minibuffer-depth) 0)
- t)))
+ t))
+ (select-frame-set-input-focus (selected-frame)))
(defun previous-multiframe-window ()
"Select the previous window, regardless of which frame it is on."
(interactive)
(select-window (previous-window (selected-window)
(> (minibuffer-depth) 0)
- t)))
+ t))
+ (select-frame-set-input-focus (selected-frame)))
(defun make-frame-on-display (display &optional parameters)
"Make a frame on display DISPLAY.
:group 'frames
:version "20.3")
+(defun select-frame-set-input-focus (frame)
+ "Select FRAME, raise it, and set input focus, if possible."
+ (select-frame frame)
+ (raise-frame frame)
+ ;; Ensure, if possible, that frame gets input focus.
+ (when (eq window-system 'w32)
+ (w32-focus-frame frame))
+ (cond (focus-follows-mouse
+ (unless (eq window-system 'w32)
+ (set-mouse-position (selected-frame) (1- (frame-width)) 0)))
+ (t
+ (when (eq window-system 'x)
+ (x-focus-frame frame)))))
+
(defun other-frame (arg)
"Select the ARG'th different visible frame, and raise it.
All frames are arranged in a cyclic order.
(while (not (eq (frame-visible-p frame) t))
(setq frame (previous-frame frame)))
(setq arg (1+ arg)))
- (select-frame frame)
- (raise-frame frame)
- ;; Ensure, if possible, that frame gets input focus.
- (when (eq window-system 'w32)
- (w32-focus-frame frame))
- (cond (focus-follows-mouse
- (unless (eq window-system 'w32)
- (set-mouse-position (selected-frame) (1- (frame-width)) 0)))
- (t
- (when (eq window-system 'x)
- (x-focus-frame frame))))))
+ (select-frame-set-input-focus frame)))
(defun make-frame-names-alist ()
(let* ((current-frame (selected-frame))