diff options
author | Thierry Volpiatto <thierry.volpiatto@gmail.com> | 2017-05-25 08:50:17 +0200 |
---|---|---|
committer | Thierry Volpiatto <thierry.volpiatto@gmail.com> | 2017-05-25 08:50:17 +0200 |
commit | cb97d744d23f9d73fb794943e1a2bd6350fd0341 (patch) | |
tree | 6ce109f98f247db838ceba7c32d6e5e12081f1bb /helm.el | |
parent | bc49f126d730c917d5d7870dbc56efc85e3a9b85 (diff) |
Avoid resetting iterator when not needed in cycle resume.
* helm.el (helm-cycle-resume):Do it.
(helm--resume-or-iter): Do it.
(helm-run-cycle-resume): Do it.
Diffstat (limited to 'helm.el')
-rw-r--r-- | helm.el | 23 |
1 files changed, 14 insertions, 9 deletions
@@ -2279,9 +2279,11 @@ Return nil if no `helm-buffer' found." (interactive) (cl-assert (and helm-buffers helm-last-buffer) nil "No helm buffers to resume") - (setq helm--cycle-resume-iterator - (helm-iter-sub-next-circular - helm-buffers helm-last-buffer :test 'equal)) + (unless (and (eq last-command 'helm-cycle-resume) + helm--cycle-resume-iterator) + (setq helm--cycle-resume-iterator + (helm-iter-sub-next-circular + helm-buffers helm-last-buffer :test 'equal))) (helm--resume-or-iter)) (defun helm--resume-or-iter (&optional from-helm) @@ -2290,17 +2292,20 @@ Return nil if no `helm-buffer' found." (if from-helm (helm-run-after-exit (lambda () (helm-resume helm-last-buffer))) (helm-resume helm-last-buffer)) - (message "Resuming helm buffer `%s'" - (setq helm-last-buffer - (helm-iter-next helm--cycle-resume-iterator))))) + (unless from-helm + (message "Resuming helm buffer `%s'" + (setq helm-last-buffer + (helm-iter-next helm--cycle-resume-iterator)))))) (defun helm-run-cycle-resume () "Same as `helm-cycle-resume' but intended to be called only from helm." (interactive) (when (cdr helm-buffers) - (setq helm--cycle-resume-iterator - (helm-iter-sub-next-circular - helm-buffers helm-last-buffer :test 'equal)) + (unless (and (eq last-command 'helm-run-cycle-resume) + helm--cycle-resume-iterator) + (setq helm--cycle-resume-iterator + (helm-iter-sub-next-circular + helm-buffers helm-last-buffer :test 'equal))) (setq helm-last-buffer (helm-iter-next helm--cycle-resume-iterator)) (helm--resume-or-iter 'from-helm))) |