# HG changeset patch # User Chong Yidong # Date 1128434804 0 # Node ID b89d9c4d5386b988c39262261971cb217f3f458b # Parent 4f45bcb69451baa06ffa8402aa767f843703d314 * info.el (Info-next, Info-prev, Info-up): Select info buffer, in case the user clicks on the link while another window is selected. (Info-speedbar-hierarchy-buttons): Use speedbar-current-frame. * dframe.el (dframe-update-keymap): Use mouse-1-click-follows-link functionality. (dframe-help-echo): Save point in case mouse tracking is off. diff -r 4f45bcb69451 -r b89d9c4d5386 lisp/ChangeLog --- a/lisp/ChangeLog Tue Oct 04 13:55:17 2005 +0000 +++ b/lisp/ChangeLog Tue Oct 04 14:06:44 2005 +0000 @@ -1,3 +1,13 @@ +2005-10-04 Chong Yidong + + * info.el (Info-next, Info-prev, Info-up): Select info buffer, in + case the user clicks on the link while another window is selected. + (Info-speedbar-hierarchy-buttons): Use speedbar-current-frame. + + * dframe.el (dframe-update-keymap): Use mouse-1-click-follows-link + functionality. + (dframe-help-echo): Save point in case mouse tracking is off. + 2005-10-04 Thien-Thi Nguyen * net/ange-ftp.el (ange-ftp-ls): Fix typo introduced in last change. diff -r 4f45bcb69451 -r b89d9c4d5386 lisp/dframe.el --- a/lisp/dframe.el Tue Oct 04 13:55:17 2005 +0000 +++ b/lisp/dframe.el Tue Oct 04 14:06:44 2005 +0000 @@ -257,7 +257,8 @@ ) ;; mouse bindings so we can manipulate the items on each line - (define-key map [down-mouse-1] 'dframe-double-click) + ;; (define-key map [down-mouse-1] 'dframe-double-click) + (define-key map [follow-link] 'mouse-face) (define-key map [mouse-2] 'dframe-click) ;; This is the power click for new frames, or refreshing a cache (define-key map [S-mouse-2] 'dframe-power-click) @@ -921,8 +922,9 @@ dframe-help-echo-function) (let ((dframe-suppress-message-flag t)) (with-current-buffer buffer - (if position (goto-char position)) - (funcall dframe-help-echo-function))))) + (save-excursion + (if position (goto-char position)) + (funcall dframe-help-echo-function)))))) (defun dframe-mouse-set-point (e) "Set POINT based on event E. diff -r 4f45bcb69451 -r b89d9c4d5386 lisp/info.el --- a/lisp/info.el Tue Oct 04 13:55:17 2005 +0000 +++ b/lisp/info.el Tue Oct 04 14:06:44 2005 +0000 @@ -1845,36 +1845,45 @@ (defun Info-next () "Go to the next node of this node." (interactive) - (Info-goto-node (Info-extract-pointer "next"))) + ;; In case another window is currently selected + (save-window-excursion + (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*")) + (Info-goto-node (Info-extract-pointer "next")))) (defun Info-prev () "Go to the previous node of this node." (interactive) - (Info-goto-node (Info-extract-pointer "prev[ious]*" "previous"))) + ;; In case another window is currently selected + (save-window-excursion + (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*")) + (Info-goto-node (Info-extract-pointer "prev[ious]*" "previous")))) (defun Info-up (&optional same-file) "Go to the superior node of this node. If SAME-FILE is non-nil, do not move to a different Info file." (interactive) - (let ((old-node Info-current-node) - (old-file Info-current-file) - (node (Info-extract-pointer "up")) p) - (and (or same-file (not (stringp Info-current-file))) - (string-match "^(" node) - (error "Up node is in another Info file")) - (Info-goto-node node) - (setq p (point)) - (goto-char (point-min)) - (if (and (search-forward "\n* Menu:" nil t) - (re-search-forward - (if (string-equal old-node "Top") - (concat "\n\\*[^:]+: +(" (file-name-nondirectory old-file) ")") - (concat "\n\\* +\\(" (regexp-quote old-node) - ":\\|[^:]+: +" (regexp-quote old-node) "\\)")) - nil t)) - (progn (beginning-of-line) (if (looking-at "^\\* ") (forward-char 2))) - (goto-char p) - (Info-restore-point Info-history)))) + ;; In case another window is currently selected + (save-window-excursion + (or (eq major-mode 'Info-mode) (pop-to-buffer "*info*")) + (let ((old-node Info-current-node) + (old-file Info-current-file) + (node (Info-extract-pointer "up")) p) + (and (or same-file (not (stringp Info-current-file))) + (string-match "^(" node) + (error "Up node is in another Info file")) + (Info-goto-node node) + (setq p (point)) + (goto-char (point-min)) + (if (and (search-forward "\n* Menu:" nil t) + (re-search-forward + (if (string-equal old-node "Top") + (concat "\n\\*[^:]+: +(" (file-name-nondirectory old-file) ")") + (concat "\n\\* +\\(" (regexp-quote old-node) + ":\\|[^:]+: +" (regexp-quote old-node) "\\)")) + nil t)) + (progn (beginning-of-line) (if (looking-at "^\\* ") (forward-char 2))) + (goto-char p) + (Info-restore-point Info-history))))) (defun Info-history-back () "Go back in the history to the last node visited." @@ -4033,7 +4042,7 @@ (save-window-excursion (setq completions (Info-speedbar-fetch-file-nodes (or node '"(dir)top")))) - (select-frame speedbar-frame) + (select-frame (speedbar-current-frame)) (if completions (speedbar-with-writable (dolist (completion completions)