org-drill: prevent fontifcation functions from being called when saving outline
visibility info during drill sessions. This should fix slow transitions between drill items for some people.
This commit is contained in:
parent
b3224994bf
commit
eb48e426d5
|
@ -1976,23 +1976,6 @@ visible content of the card."
|
|||
(org-drill-hide-subheadings-if 'org-drill-entry-p)))))
|
||||
|
||||
|
||||
;;; The following macro is necessary because `org-save-outline-visibility'
|
||||
;;; currently discards the value returned by its body and returns a garbage
|
||||
;;; value instead. (as at org mode v 7.5)
|
||||
|
||||
(defmacro org-drill-save-visibility (&rest body)
|
||||
"Store the current visibility state of the org buffer, and restore it
|
||||
after executing BODY. Return the value of the last expression
|
||||
in BODY."
|
||||
(let ((retval (gensym)))
|
||||
`(let ((,retval nil))
|
||||
(org-save-outline-visibility t
|
||||
(setq ,retval
|
||||
(progn
|
||||
,@body)))
|
||||
,retval)))
|
||||
|
||||
|
||||
(defun org-drill-entry ()
|
||||
"Present the current topic for interactive review, as in `org-drill'.
|
||||
Review will occur regardless of whether the topic is due for review or whether
|
||||
|
@ -2012,8 +1995,11 @@ See `org-drill' for more details."
|
|||
;; (org-back-to-heading))
|
||||
(let ((card-type (org-entry-get (point) "DRILL_CARD_TYPE"))
|
||||
(answer-fn 'org-drill-present-default-answer)
|
||||
(cont nil))
|
||||
(org-drill-save-visibility
|
||||
(cont nil)
|
||||
;; fontification functions in `outline-view-change-hook' can cause big
|
||||
;; slowdowns, so we temporarily bind this variable to nil here.
|
||||
(outline-view-change-hook nil))
|
||||
(org-save-outline-visibility t
|
||||
(save-restriction
|
||||
(org-narrow-to-subtree)
|
||||
(org-show-subtree)
|
||||
|
@ -3013,4 +2999,3 @@ returns its return value."
|
|||
|
||||
|
||||
(provide 'org-drill)
|
||||
|
||||
|
|
Loading…
Reference in New Issue