]> git.eshelyaron.com Git - emacs.git/commitdiff
* info.el (Info-next, Info-prev, Info-up): Select info buffer, in
authorChong Yidong <cyd@stupidchicken.com>
Tue, 4 Oct 2005 14:06:44 +0000 (14:06 +0000)
committerChong Yidong <cyd@stupidchicken.com>
Tue, 4 Oct 2005 14:06:44 +0000 (14:06 +0000)
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.

lisp/ChangeLog
lisp/dframe.el
lisp/info.el

index 164a401026c45fb77f9c26388cc2e99210de487d..fe0e1a74c9a53f72d764b84253dfe4dbdca68475 100644 (file)
@@ -1,3 +1,13 @@
+2005-10-04  Chong Yidong  <cyd@stupidchicken.com>
+
+       * 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  <ttn@gnu.org>
 
        * net/ange-ftp.el (ange-ftp-ls): Fix typo introduced in last change.
index b180d6bbf00df3b85d73aed9f3ccd5967b3dd080..f0aa72d0f1f7f869ecc9fd34f0f6ad8450e6df89 100644 (file)
@@ -257,7 +257,8 @@ Local to those buffers, as a function called that created it.")
        )
 
     ;; 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 @@ BUFFER and POSITION are optional because XEmacs doesn't use them."
             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.
index a7cabcde8200f0752154a8071082191450cde59f..5a0c0b510c16ace33ee5ea00c0be07298af3d899 100644 (file)
@@ -1845,36 +1845,45 @@ End of submatch 0, 1, and 3 are the same, so you can safely concat."
 (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 @@ specific node to expand."
       (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)