unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Tak Kunihiro <tkk@misasa.okayama-u.ac.jp>
To: drew.adams@oracle.com, Eli Zaretskii <eliz@gnu.org>
Cc: 27435@debbugs.gnu.org, 国広卓也 <tkk@misasa.okayama-u.ac.jp>
Subject: bug#27435: patch for dired-mouse-find-file-other-window
Date: Mon, 28 Aug 2017 09:22:35 +0900	[thread overview]
Message-ID: <35B0B760-56DC-43A4-B6C9-B29A51CF4547@misasa.okayama-u.ac.jp> (raw)
In-Reply-To: <83zial3wf9.fsf@gnu.org>

Thank you for the comments.

>>> But you could have the same effect by rebinding mouse-2 to another
>>> function.  We just need to add such a function, which should work like
>>> dired-mouse-find-file-other-window, but visit the file in the same
>>> window.  That sounds like a better alternative for this use case,
>>> because customizing a function-valued variable is trickier for users
>>> than rebinding keys.
>> 
>> Then the new function `dired-mouse-find-file-this-window' will look
>> very similar to `dired-mouse-find-file-other-window' but two lines.
>> Is that OK?
> 
> We could factor out the common part into a new function, and then make
> those two functions call it.

> FWIW: Conventionally, we add `-other-window' or `-other-frame'

> to the same-window command name, which lacks any such suffix.
> IOW, typically we do not use `-this-window'.
> 
> FWIW2: Dired+ has had such a same-window mouse command since
> 1999 (if not before).  There is also an `-other-frame' version.


With the suggestions, I created two functions.

 - dired-mouse-find-file (new, this inherits common part)
 - dired-mouse-find-file-other-window
 - dired-mouse-find-file-other-frame (new)

I attach the patch.  This does not change the default behavior.

diff --git a/dired.252.el b/dired.el
index 39dc29e..3a4bbce 100644
--- a/dired.252.el
+++ b/dired.el
@@ -2117,9 +2117,12 @@ directory in another window."
 ;; Don't override the setting from .emacs.
 ;;;###autoload (put 'dired-find-alternate-file 'disabled t)
 
-(defun dired-mouse-find-file-other-window (event)
-  "In Dired, visit the file or directory name you click on."
+(defun dired-mouse-find-file (event &optional find-file-func find-dir-func)
+  "In Dired, visit the file or directory name you click on.
+FIND-FILE-FUNC and FIND-DIR-FUNC specify functions to visit the file and directory, respectively."
   (interactive "e")
+  (or find-file-func (setq find-file-func 'find-file))
+  (or find-dir-func (setq find-file-func 'find-alternate-file))
   (let (window pos file)
     (save-excursion
       (setq window (posn-window (event-end event))
@@ -2134,9 +2137,19 @@ directory in another window."
                  (dired-goto-subdir file))
             (progn
               (select-window window)
-	      (dired-other-window file)))
+              (funcall find-dir-func file)))
       (select-window window)
-      (find-file-other-window (file-name-sans-versions file t)))))
+      (funcall find-file-func (file-name-sans-versions file t)))))
+
+(defun dired-mouse-find-file-other-window (event)
+  "In Dired, visit the file or directory name you click on other window."
+  (interactive "e")
+  (dired-mouse-find-file event 'find-file-other-window 'dired-other-window))
+
+(defun dired-mouse-find-file-other-frame (event)
+  "In Dired, visit the file or directory name you click on other frame."
+  (interactive "e")
+  (dired-mouse-find-file event 'find-file-other-frame 'dired-other-frame))
 
 (defun dired-view-file ()
   "In Dired, examine a file in view mode, returning to Dired when done.






  reply	other threads:[~2017-08-28  0:22 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-21  1:41 bug#27435: patch for dired-mouse-find-file-other-window Tak Kunihiro
2017-07-18  4:38 ` Tak Kunihiro
2017-08-26  6:27   ` Tak Kunihiro
2017-08-26  8:09     ` Eli Zaretskii
2017-08-26  9:26       ` Tak Kunihiro
2017-08-26 10:27         ` Eli Zaretskii
2017-08-27  9:02           ` Tak Kunihiro
2017-08-27 12:56             ` Drew Adams
2017-08-27 14:41             ` Eli Zaretskii
2017-08-28  0:22               ` Tak Kunihiro [this message]
2017-09-02 10:20                 ` Eli Zaretskii
2017-09-03  2:08                   ` Tak Kunihiro
2017-09-08  8:56                     ` Eli Zaretskii

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=35B0B760-56DC-43A4-B6C9-B29A51CF4547@misasa.okayama-u.ac.jp \
    --to=tkk@misasa.okayama-u.ac.jp \
    --cc=27435@debbugs.gnu.org \
    --cc=drew.adams@oracle.com \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).