[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Issue] Move \once action from iterators to listeners

From: David Kastrup
Subject: [Issue] Move \once action from iterators to listeners
Date: Tue, 15 Sep 2015 21:10:34 +0200
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/25.0.50 (gnu/linux)

Issue: Move \once action from iterators to listeners
Type: Enhancement
Owner: address@hidden
Patch: new
Move \once action from iterators to listeners

This ends the dependency of the events generated for \once\unset and
\once\set on the current context (bad for recording and replaying events
like with the part combiner and quoted music).  It also implements
\once\revert and makes every \once\override and \once\revert impervious
to any other overrides and reverts that may happen at the same time.

Also contains commits (obviously making issue 4596 abandoned):

Issue 4596/6: Document \once \revert

Issue 4596/5: Regtest for \once \revert

Issue 4596/4: Let \displayLilyMusic heed \once \unset and \once \revert

Create ly:context-matched-pop-property

Add Grob_property_info::temporary_{override,revert} functions

Let nalist_to_alist accept temporary overrides/reverts

At the current point of time, some Midi properties (balance, pan and
others) are implemented via SetProperty events.  Those have not yet
been converted to deal with \once.  The disadvantage of this patch is
that all recipients of SetProperty/UnsetProperty/Override/Revert now
have to implement the "once" property themselves.  The advantage is
that at the time of recording events, the actual property values for
undoing the action are not reliably known and shifting the
implementation of \once to the listeners makes its behavior reliable.

As a side effect, it should be possible to revisit issue 4131 without
the principal shortcomings that stalled it.

Rietveld issue: 265180043 (https://codereview.appspot.com/265180043)

David Kastrup

reply via email to

[Prev in Thread] Current Thread [Next in Thread]