[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Q: How to programatically terminate repeat-mode
From: |
Juri Linkov |
Subject: |
Re: Q: How to programatically terminate repeat-mode |
Date: |
Sat, 10 Sep 2022 22:18:16 +0300 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/29.0.50 (x86_64-pc-linux-gnu) |
> I have been using repeat-mode to good effect in emacspeak e.g. in the
> context of its media player etc.
>
> One issue I have is that once a command to stop media has been
> executed, I'd like the repeat to stop i.e. without me executing
> another explicit kbd command like C-g to terminate the repeat.
The simplest way is just not to put the property 'repeat-map'
on the symbol of the command that stops media. Then executing
this command will terminate the repeat.
> How do I do this from lisp?
It's no easy to do the same from Lisp because in repeat-post-hook
the value of 'exitfun' returned from 'set-transient-map' is not
exposed outside. Maybe the value of 'exitfun' should be stored
in a variable? Currently 'exitfun' is used only by repeat-exit-timer.
> I'd rather not call keyboard-quit explicitly -- that sounds like
> overkill?
Or you could put 'repeat-exit-key' on 'unread-command-events'.