Subject: bug#27435: patch for dired-mouse-find-file-other-window

From: Tak Kunihiro <[email-masked]>
Date: Sat, 26 Aug 2017 15:27:47 +0900 (JST)

I have sent a patch to let mouse click on dired to open file (or
directory) in this-window not in other-window, 8 weeks ago.  This
patch does not change default, and (I think) lets dired respond to
what non-expert expects, with following two local lines.

  (setq dired-mouse-find-dir-func (lambda (file) (interactive) (dired-find-alternate-file)))
  (setq dired-mouse-find-file-func 'find-file)

Please respond to the patch (including rejection).

> 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)}