*/
SCM val;
- while (trans && trans->where_defined (ly_symbol2scm ("localAlterations"), &val) == trans)
+ while (trans && trans->here_defined (ly_symbol2scm ("localAlterations"), &val))
{
trans->set_property ("localAlterations", ly_deep_copy (last_keysig_));
trans = trans->get_parent_context ();
#include "context.hh"
#include "engraver.hh"
+#include "global-context.hh"
#include "international.hh"
#include "item.hh"
#include "main.hh"
{
SCM current_context_val = SCM_EOL;
- Context *where = context->where_defined (context_property,
- ¤t_context_val);
+ if (!context->here_defined (context_property, ¤t_context_val))
+ {
+ Context *g = context->get_global_context ();
+ if (!g)
+ return; // Context is probably dead
- /*
- Don't mess with MIDI.
- */
- if (!where)
- return;
+ /*
+ Don't mess with MIDI.
+ */
+ if (g == context
+ || !g->here_defined (context_property, ¤t_context_val))
+ return;
- if (where != context)
- {
- SCM base = updated_grob_properties (context, context_property);
+ /* where != context */
+
+ SCM base = updated_grob_properties (context->get_parent_context (),
+ context_property);
current_context_val = scm_cons (base, base);
context->set_property (context_property, current_context_val);
}
SCM grob_property_path)
{
SCM current_context_val = SCM_EOL;
- if (context->where_defined (context_property, ¤t_context_val)
- == context)
+ if (context->here_defined (context_property, ¤t_context_val))
{
SCM current_alist = scm_car (current_context_val);
SCM daddy = scm_cdr (current_context_val);
bool once = to_boolean (m->get_property ("once"));
SCM symbol = m->get_property ("symbol");
SCM previous_value = SCM_UNDEFINED;
- if (once) {
- Context *w = o->where_defined (symbol, &previous_value);
- if (o != w)
- previous_value = SCM_UNDEFINED;
- }
+ if (once)
+ o->here_defined (symbol, &previous_value);
+
send_stream_event (o, "SetProperty", m->origin (),
ly_symbol2scm ("symbol"), symbol,
ly_symbol2scm ("value"), m->get_property ("value"));
bool once = to_boolean (m->get_property ("once"));
SCM symbol = m->get_property ("symbol");
SCM previous_value = SCM_UNDEFINED;
- if (once) {
- Context *w = o->where_defined (symbol, &previous_value);
- if (o != w)
- previous_value = SCM_UNDEFINED;
- }
+ if (once)
+ o->here_defined (symbol, &previous_value);
+
send_stream_event (o, "UnsetProperty", m->origin (),
ly_symbol2scm ("symbol"), symbol);