"T.V Raman" writes: Answering my own question: (push 7 unread-command-events) in the process sentinel works where I have customized repeat-exit-key to C-g. However I needed to explicitly use (push 7 unread-command-events) rather than the more readable (push repeat-exit-key unread-command-events) since unread-command-events doesn't like having a vector pushed onto it. > Juri Linkov writes: > Hi, > > The suggestion you gave me, ie dont put the repeat property on the > command that stops media works brilliantly --- excpt: > > If the media plays to completion while repeat is still active, then the > repeat fails to deactivate. Any ideas on how to handle that? > > >>> 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'. -- Thanks, --Raman(I Search, I Find, I Misplace, I Research) ♈ Id: kg:/m/0285kf1 🦮