X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=src%2FCanvas%2Fproperty_helper.cxx;h=795dd72d0cc1b3d2992af6fc126872a0a56f4d00;hb=83bbd9e45c1f04dbeac986a383cd6e253a7f9590;hp=7bf65404ede70eb57be0dc8b001ace02588b3ba7;hpb=023021a879b3c7c1235b8a1fb936b2e20b7859b9;p=flightgear.git diff --git a/src/Canvas/property_helper.cxx b/src/Canvas/property_helper.cxx index 7bf65404e..795dd72d0 100644 --- a/src/Canvas/property_helper.cxx +++ b/src/Canvas/property_helper.cxx @@ -44,4 +44,16 @@ namespace canvas for( size_t i = 0; i < num_channels; ++i ) nodes.push_back( getChildDefault(color, channels[i], def[i]) ); } + + //---------------------------------------------------------------------------- + void triggerChangeRecursive(SGPropertyNode* node) + { + node->getParent()->fireChildAdded(node); + + if( node->nChildren() == 0 && node->getType() != simgear::props::NONE ) + return node->fireValueChanged(); + + for( int i = 0; i < node->nChildren(); ++i ) + triggerChangeRecursive( node->getChild(i) ); + } }