emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/hyperdrive 64ed227587 01/21: Fix: (-dir-column-headers) Fi


From: ELPA Syncer
Subject: [nongnu] elpa/hyperdrive 64ed227587 01/21: Fix: (-dir-column-headers) Fix single click on dir column header
Date: Sun, 15 Oct 2023 19:00:37 -0400 (EDT)

branch: elpa/hyperdrive
commit 64ed2275871b0f4bb7175c92e5cf87f412aa5648
Author: Joseph Turner <joseph@ushin.org>
Commit: Joseph Turner <joseph@ushin.org>

    Fix: (-dir-column-headers) Fix single click on dir column header
    
    Thanks to Protesilaos Stavrou for reporting this bug!
---
 hyperdrive-dir.el | 21 +++++++++------------
 1 file changed, 9 insertions(+), 12 deletions(-)

diff --git a/hyperdrive-dir.el b/hyperdrive-dir.el
index ac4ebfedb8..53ec63ef6f 100644
--- a/hyperdrive-dir.el
+++ b/hyperdrive-dir.el
@@ -144,13 +144,7 @@ Columns are suffixed with up/down arrows according to
                            ;; extended to the end of the window.
                            (and selected left-aligned (concat " " arrow)))))
         (push (propertize (format format-str desc)
-                          'keymap
-                          (define-keymap
-                            "<mouse-1>" (lambda (&optional _e)
-                                          (interactive "e")
-                                          (hyperdrive-dir-sort
-                                           
(hyperdrive-dir-toggle-sort-direction
-                                            column 
hyperdrive-directory-sort))))
+                          'hyperdrive-dir-column column
                           'mouse-face 'highlight)
               headers)
         (unless (eq column 'name)
@@ -250,7 +244,7 @@ With point on header, returns directory entry."
   "s"   #'hyperdrive-dir-sort
   "?"   #'hyperdrive-menu
   "+"   #'hyperdrive-create-directory-no-op
-  "<mouse-2>" #'hyperdrive-dir-find-at-point
+  "<mouse-2>" #'hyperdrive-dir-follow-link
   "<follow-link>" 'mouse-face)
 
 (define-derived-mode hyperdrive-dir-mode hyperdrive-ewoc-mode
@@ -266,11 +260,14 @@ With point on header, returns directory entry."
 
 ;;;; Commands
 
-(defun hyperdrive-dir-find-at-point (event)
-  "Find entry at EVENT's position."
+(defun hyperdrive-dir-follow-link (event)
+  "Follow link at EVENT's position."
   (interactive "e")
-  (mouse-set-point event)
-  (call-interactively #'hyperdrive-dir-find-file-other-window))
+  (if-let ((column (get-char-property (mouse-set-point event) 
'hyperdrive-dir-column)))
+      (hyperdrive-dir-sort
+       (hyperdrive-dir-toggle-sort-direction
+        column hyperdrive-directory-sort))
+    (call-interactively #'hyperdrive-dir-find-file-other-window)))
 
 (cl-defun hyperdrive-dir-find-file
     (entry &key (display-buffer-action 
hyperdrive-directory-display-buffer-action))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]