branch: externals/mpdired commit 6df5870a7d18f9d87ee23d7f205836cbde17cfc5 Author: Manuel Giraud <man...@ledu-giraud.fr> Commit: Manuel Giraud <man...@ledu-giraud.fr>
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)