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

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

[elpa] externals/mpdired c706173fb3 039/133: also save/restore browser p


From: ELPA Syncer
Subject: [elpa] externals/mpdired c706173fb3 039/133: also save/restore browser point
Date: Sun, 10 Mar 2024 15:59:34 -0400 (EDT)

branch: externals/mpdired
commit c706173fb30aaddbfc282aee590bc7e8043d4834
Author: Manuel Giraud <manuel@ledu-giraud.fr>
Commit: Manuel Giraud <manuel@ledu-giraud.fr>

    also save/restore browser point
---
 mpdired.el | 48 +++++++++++++++++++++++++++++-------------------
 1 file changed, 29 insertions(+), 19 deletions(-)

diff --git a/mpdired.el b/mpdired.el
index a509de8d6b..08a2f773ff 100644
--- a/mpdired.el
+++ b/mpdired.el
@@ -8,21 +8,23 @@
 
 (defvar-keymap mpdired-mode-map
   :doc "Local keymap for MPDired."
-  "C-n"   'mpdired-next-line
-  "n"     'mpdired-next-line
-  "C-p"   'mpdired-previous-line
-  "p"     'mpdired-previous-line
-  "C-m"   'mpdired-enter
-  "^"     'mpdired-goto-parent
-  "o"     'mpdired-toggle-view
-  "g"     'mpdired-update
-  "q"     'bury-buffer
-  "<SPC>" 'mpdired-toggle-play/pause
-  "N"     'mpdired-next
-  "P"     'mpdired-previous
-  "a"     'mpdired-add-at-point
+  "C-n"    'mpdired-next-line
+  "n"      'mpdired-next-line
+  "<down>" 'mpdired-next-line
+  "C-p"    'mpdired-previous-line
+  "p"      'mpdired-previous-line
+  "<up>"   'mpdired-previous-line
+  "C-m"    'mpdired-enter
+  "^"      'mpdired-goto-parent
+  "o"      'mpdired-toggle-view
+  "g"      'mpdired-update
+  "q"      'bury-buffer
+  "<SPC>"  'mpdired-toggle-play/pause
+  "N"      'mpdired-next
+  "P"      'mpdired-previous
+  "a"      'mpdired-add-at-point
   ;; Only for queue
-  "D"     'mpdired-delete)
+  "D"      'mpdired-delete)
 
 (defun mpdired--subdir-p (dir-a dir-b)
   (let ((pos (string-search dir-a dir-b)))
@@ -148,6 +150,8 @@
 (defvar-local mpdired--view nil)
 (defvar-local mpdired--comm-buffer nil
   "Communication buffer associated to this MPDired buffer.")
+(defvar-local mpdired--browser-point nil
+  "Saved point position in the browser view.")
 (defvar-local mpdired--queue-point nil
   "Saved point position in the queue view.")
 
@@ -209,8 +213,10 @@
                 (when top
                   (forward-line)
                   (goto-char (line-beginning-position)))))
-         ;; Set mode and memorize stuff
+         ;; Set mode, restore point and memorize stuff
          (mpdired-mode)
+         (when mpdired--browser-point
+           (goto-char mpdired--browser-point))
          (setq mpdired--directory (when top top)
                mpdired--comm-buffer (process-buffer proc)
                mpdired--view 'browser))))))
@@ -380,19 +386,23 @@
     (process-send-string process "status\n")
     (process-send-string process "command_list_end\n")))
 
+(defun mpdired--save-point ()
+  (cond ((eq mpdired--view 'queue)
+        (setf mpdired--queue-point (point)))
+       ((eq mpdired--view 'browser)
+        (setf mpdired--browser-point (point)))))
+
 (defun mpdired-next-line ()
   (interactive)
   (forward-line)
   (goto-char (line-beginning-position))
-  (when (eq mpdired--view 'queue)
-    (setf mpdired--queue-point (point))))
+  (mpdired--save-point))
 
 (defun mpdired-previous-line ()
   (interactive)
   (forward-line -1)
   (goto-char (line-beginning-position))
-  (when (eq mpdired--view 'queue)
-    (setf mpdired--queue-point (point))))
+  (mpdired--save-point))
 
 (defun mpdired-listall-at-point ()
   (let* ((bol (line-beginning-position))



reply via email to

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