From: Richard M. Stallman Date: Mon, 10 Dec 2001 20:41:18 +0000 (+0000) Subject: (iswitchb-visit-buffer): Use `select-frame-set-input-focus'. X-Git-Tag: ttn-vms-21-2-B4~17816 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=4d8ae757b2662eca9e0d49c3fb27e69fb85cab85;p=emacs.git (iswitchb-visit-buffer): Use `select-frame-set-input-focus'. It is needed when window manager uses "click to focus" policy. --- diff --git a/lisp/iswitchb.el b/lisp/iswitchb.el index 5ec032adb98..aece0d2dea0 100644 --- a/lisp/iswitchb.el +++ b/lisp/iswitchb.el @@ -49,9 +49,9 @@ ;;; Example -;;If I have two buffers called "123456" and "123", with "123456" the -;;most recent, when I use iswitchb, I first of all get presented with -;;the list of all the buffers +;; If I have two buffers called "123456" and "123", with "123456" the +;; most recent, when I use iswitchb, I first of all get presented with +;; the list of all the buffers ;; ;; iswitch {123456,123} ;; @@ -73,12 +73,12 @@ ;; wanted the second in the list, I could press C-s to move it to the ;; top of the list and then RET to select it. ;; -;;However, If I type 4, I only have one match left: +;; However, if I type 4, I only have one match left: ;; iswitch 234[123456] [Matched] ;; -;;Since there is only one matching buffer left, it is given in [] and we -;;see the text [Matched] afterwards. I can now press TAB or RET to go -;;to that buffer. +;; Since there is only one matching buffer left, it is given in [] and we +;; see the text [Matched] afterwards. I can now press TAB or RET to go +;; to that buffer. ;; ;; If however, I now type "a": ;; iswitch 234a [No match] @@ -103,9 +103,8 @@ ;; If you find that the file you are after is not in a buffer, you can ;; press C-x C-f to immediately drop into find-file. -;; -;; See the doc string of iswitchb for full keybindings and features. -;; (describe-function 'iswitchb) +;; See the doc string of iswitchb for full keybindings and features. +;; (describe-function 'iswitchb) ;; Case matching: The case of strings when matching can be ignored or ;; used depending on the value of iswitchb-case (default is the same @@ -176,11 +175,42 @@ ;; for the normal buffer selection routine `read-buffer'. To use ;; iswitch for all buffer selections in Emacs, add: ;; (setq read-buffer-function 'iswitchb-read-buffer) -;; (This variable should be present in Emacs 20.3+) +;; (This variable was introduced in Emacs 20.3.) ;; XEmacs users can get the same behaviour by doing: ;; (defalias 'read-buffer 'iswitchb-read-buffer) ;; since `read-buffer' is defined in lisp. +;; Using iswitchb for other completion tasks. + +;; Kin Cho (kin@neoscale.com sent the following suggestion to use +;; iswitchb for other completion tasks. +;; +;; (defun my-icompleting-read (prompt choices) +;; "Use iswitch as a completing-read replacement to choose from +;; choices. PROMPT is a string to prompt with. CHOICES is a list of +;; strings to choose from." +;; (let ((iswitchb-make-buflist-hook +;; (lambda () +;; (setq iswitchb-temp-buflist choices)))) +;; (iswitchb-read-buffer prompt))) +;; +;; example: +;; (my-icompleting-read "Which fruit? " ' +;; ("apple" "pineapple" "pear" "bananas" "oranges") ) + +;; Other lisp packages extend iswitchb behaviour to other tasks. See +;; ido.el (by Kim Storm) and mcomplete.el (Yuji Minejima). + +;; Window managers: Switching frames/focus follows mouse; Sawfish. + +;; If you switch to a buffer that is visible in another frame, +;; iswitchb can switch focus to that frame. If your window manager +;; uses "click to focus" policy for window selection, you should also +;; set focus-follows-mouse to nil. + +;; iswitch functionality has also been implemented for switching +;; between windows in the Sawfish window manager. + ;; Regexp matching ;; There is limited provision for regexp matching within iswitchb, @@ -967,13 +997,12 @@ Return the modified list with the last element prepended to it." (or (eq iswitchb-method 'always-frame) (y-or-n-p "Jump to frame? "))) (setq newframe (window-frame win)) - (raise-frame newframe) - (select-frame newframe) - (select-window win) - (if (not iswitchb-xemacs) - ;; reposition mouse to make frame active. not needed in XEmacs - ;; This line came from the other-frame defun in Emacs. - (set-mouse-position (selected-frame) (1- (frame-width)) 0))) + (if (not iswitchb-xemacs) + (select-frame-set-input-focus newframe) + (raise-frame newframe) + (select-frame newframe) + ) + (select-window win)) (t ;; No buffer in other frames... (switch-to-buffer buffer) @@ -989,7 +1018,7 @@ Return the modified list with the last element prepended to it." (progn (switch-to-buffer-other-frame buffer) (if (not iswitchb-xemacs) - (set-mouse-position (selected-frame) (1- (frame-width)) 0)) + (select-frame-set-input-focus (selected-frame))) ))))) (defun iswitchb-possible-new-buffer (buf)