Function: activities-with
activities-with is a macro defined in activities.el.
Signature
(activities-with ACTIVITY &rest BODY)
Documentation
Evaluate BODY with ACTIVITY active.
Selects ACTIVITY's frame/tab and then switches back.
Source Code
;; Defined in ~/.emacs.d/elpa/activities-0.7.2/activities.el
;;;; Macros
(defmacro activities-with (activity &rest body)
"Evaluate BODY with ACTIVITY active.
Selects ACTIVITY's frame/tab and then switches back."
(declare (indent defun) (debug (sexp body)))
(let ((original-state-var (gensym)))
`(let ((,original-state-var `( :frame ,(selected-frame)
:window ,(selected-window)
:tab-index ,(when (bound-and-true-p tab-bar-mode)
(tab-bar--current-tab-index)))))
(unless (activities-activity-active-p ,activity)
(error "Activity %S not active" (activities-activity-name ,activity)))
(unwind-protect
(progn
(activities--switch ,activity)
,@body)
(pcase-let (((map :frame :window :tab-index) ,original-state-var))
(when frame
(select-frame frame))
(when tab-index
(tab-bar-select-tab (1+ tab-index)))
(when window
(select-window window)))))))