diff --git a/simgear/props/props.cxx b/simgear/props/props.cxx index 673cde4c..2f26f2a6 100644 --- a/simgear/props/props.cxx +++ b/simgear/props/props.cxx @@ -2030,12 +2030,15 @@ SGPropertyNode::untie (const char * relative_path) } void -SGPropertyNode::addChangeListener (SGPropertyChangeListener * listener) +SGPropertyNode::addChangeListener (SGPropertyChangeListener * listener, + bool initial) { if (_listeners == 0) _listeners = new vector; _listeners->push_back(listener); listener->register_property(this); + if (initial) + listener->valueChanged(this); } void diff --git a/simgear/props/props.hxx b/simgear/props/props.hxx index fb04b6bf..332d47a2 100644 --- a/simgear/props/props.hxx +++ b/simgear/props/props.hxx @@ -1097,9 +1097,11 @@ public: /** - * Add a change listener to the property. + * Add a change listener to the property. If "initial" is set call the + * listener initially. */ - void addChangeListener (SGPropertyChangeListener * listener); + void addChangeListener (SGPropertyChangeListener * listener, + bool initial = false); /**