#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);