From: Gerd Moellmann Date: Fri, 10 Aug 2001 13:47:18 +0000 (+0000) Subject: (select-frame-set-input-focus): New function X-Git-Tag: emacs-pretest-21.0.105~213 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=030f453737bdf08035ebae69b6e1660d47c78f25;p=emacs.git (select-frame-set-input-focus): New function extracted from other-frame. (other-frame): Use it. (next-multiframe-window, previous-multiframe-window): Use it. --- diff --git a/lisp/ChangeLog b/lisp/ChangeLog index d23ed6ab2d2..f40dce1749d 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,5 +1,10 @@ 2001-08-10 Gerd Moellmann + * 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. diff --git a/lisp/frame.el b/lisp/frame.el index c888334aad4..6c7c16aa98d 100644 --- a/lisp/frame.el +++ b/lisp/frame.el @@ -506,14 +506,16 @@ is not considered (see `next-frame')." (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. @@ -631,6 +633,20 @@ the user during startup." :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. @@ -648,17 +664,7 @@ A negative ARG moves in the opposite 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))