branch: externals/mpdired
commit 6df5870a7d18f9d87ee23d7f205836cbde17cfc5
Author: Manuel Giraud <[email protected]>
Commit: Manuel Giraud <[email protected]>
try to go to a correct place upon deletion
---
mpdired.el | 19 +++++++++++++++++--
1 file changed, 17 insertions(+), 2 deletions(-)
diff --git a/mpdired.el b/mpdired.el
index 3a4dcddf0e..3996c5b005 100644
--- a/mpdired.el
+++ b/mpdired.el
@@ -681,19 +681,34 @@
(defun mpdired-deleteid-at-point ()
(let ((id (get-text-property (mpdired--bol) 'id)))
- (when id (mpdired-deleteid-internal id))))
+ (when id
+ (save-excursion
+ (forward-line)
+ (setq mpdired--songid-point
+ (get-text-property (mpdired--bol) 'id)))
+ (mpdired-deleteid-internal id))))
(defun mpdired-delete ()
(interactive)
(cond ((eq mpdired--view 'queue)
(mpdired-deleteid-at-point))))
+(defun mpdired--find-next-unmarked-id ()
+ (save-excursion
+ (let ((max (point-max)))
+ (while (and (< (point) max)
+ (get-text-property (mpdired--bol) 'mark))
+ (forward-line))
+ (get-text-property (mpdired--bol) 'id))))
+
(defun mpdired-flagged-delete ()
(interactive)
(when (eq mpdired--view 'queue)
(let* ((flagged (mpdired--collect-marked ?d))
(ids (mapcar 'car flagged)))
- (when flagged (mpdired-deleteid-internal ids)))))
+ (when flagged
+ (setf mpdired--songid-point (mpdired--find-next-unmarked-id))
+ (mpdired-deleteid-internal ids)))))
(defun mpdired-update ()
(interactive)