summaryrefslogtreecommitdiff
path: root/helm.el
diff options
context:
space:
mode:
authorThierry Volpiatto <thierry.volpiatto@gmail.com>2017-05-25 08:50:17 +0200
committerThierry Volpiatto <thierry.volpiatto@gmail.com>2017-05-25 08:50:17 +0200
commitcb97d744d23f9d73fb794943e1a2bd6350fd0341 (patch)
tree6ce109f98f247db838ceba7c32d6e5e12081f1bb /helm.el
parentbc49f126d730c917d5d7870dbc56efc85e3a9b85 (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.el23
1 files changed, 14 insertions, 9 deletions
diff --git a/helm.el b/helm.el
index 84aa6324..526b1c76 100644
--- a/helm.el
+++ b/helm.el
@@ -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)))