Subject: patch for dired-mouse-find-file-other-window
From: Tak Kunihiro <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Wed, 21 Jun 2017 10:41:00 +0900 (JST)
List-Id: <debbugs-submit.debbugs.gnu.org>

For now, mouse click on dired displays file (or directory) in
other-window.  I am sending a patch to display file (or directory)
using specified functions.

# Change log

2017-05-20  Tak Kunihiro  <[email-masked]>

        Let user specify function to open file or directory in dired using mouse-2

        * doc/emacs/dired.texi (Navigation): Document support of customizing functions to be used by mouse-2.
        * lisp/dired.el (dired-mouse-find-file-other-window): Open file or directory by `dired-mouse-find-file-func' or `dired-mouse-find-dir-func'.
    (dired-mouse-find-file-func): Specify function to open file on `dired-mouse-find-file-other-window'.
    (dired-mouse-find-dir-func): Specify function to open directory on `dired-mouse-find-file-other-window'.

# NEWS

** Use can specify function to open file or directory in dired using mouse click.
You can specify function to open file or directory by
'dired-mouse-find-file-func' and 'dired-mouse-find-dir-func'.

# Code

diff --git a/dired.252.el b/dired.el
index 39dc29e..8c21388 100644
--- a/dired.252.el
+++ b/dired.el
@@ -2117,8 +2117,20 @@ directory in another window."
 ;; Don't override the setting from .emacs.
 ;;;###autoload (put 'dired-find-alternate-file 'disabled t)

+(defcustom dired-mouse-find-file-func 'find-file-other-window
+  "Function to open file by `dired-mouse-find-file-other-window'."
+  :group 'mouse
+  :type 'function
+  :version "26.1")
+(defcustom dired-mouse-find-dir-func 'dired-other-window
+  "Function to open directory by `dired-mouse-find-file-other-window'."
+  :group 'mouse
+  :type 'function
+  :version "26.1")
 (defun dired-mouse-find-file-other-window (event)
-  "In Dired, visit the file or directory name you click on."
+  "In Dired, visit the file or directory name you click on.
+To open file or directory, this uses
+`dired-mouse-find-file-func' or `dired-mouse-find-dir-func'."
   (interactive "e")
   (let (window pos file)
     (save-excursion
@@ -2134,9 +2146,9 @@ directory in another window."
                 (dired-goto-subdir file))
            (progn
              (select-window window)
-             (dired-other-window file)))
+             (funcall dired-mouse-find-dir-func file)))
       (select-window window)
-      (find-file-other-window (file-name-sans-versions file t)))))
+      (funcall dired-mouse-find-file-func (file-name-sans-versions file t)))))

 (defun dired-view-file ()
   "In Dired, examine a file in view mode, returning to Dired when done.

# Info

diff --git a/dired.252.texi b/dired.texi
index 0e62a9e..323d350 100644
--- a/dired.252.texi
+++ b/dired.texi
@@ -358,7 +358,9 @@ another window, but do not select that window (@code{dired-display-file
 @findex dired-mouse-find-file-other-window
 Visit the file whose name you clicked on
 (@code{dired-mouse-find-file-other-window}).  This uses another window
-to display the file, like the @kbd{o} command.
+to display the file, like the @kbd{o} command.  You can change which
+window to display the file by customizing the variables
+@code{dired-mouse-find-file-func} and @code{dired-mouse-find-dir-func}.

 @item v
 @kindex v @r{(Dired)}