Robert Bragg f834b8b138 material: Don't prune ancestry if it owns some layers
Each time a material property changes we look to see if any of its
ancestry has become redundant and if so we prune that redundant
ancestry.

There was a problem with the logic that handles this though because we
weren't considering that a material which is a layer state authority may
still defer to ancestors to define the state of individual layers.

For example a material that derives from a parent with 5 layers can
become a STATE_LAYERS authority by simply changing it's ->n_layers count
to 4 and in that case it can still defer to its ancestors to define the
state of those 4 layers.

This patch checks first if a material is a layer state authority and if
so only tries to prune its ancestry if it also *owns* all the individual
layers it depends on. (I.e. if g_list_length
(material->layer_differences) != material->n_layers then it's not safe
to try pruning its ancestry!)

http://bugzilla-attachments.gnome.org/attachment.cgi?id=170907
2010-09-24 00:12:14 +01:00
..
2010-09-13 12:19:54 +01:00
2010-09-03 11:14:05 +01:00
2010-03-01 12:56:10 +00:00
2010-09-03 16:12:24 +01:00
2010-09-08 16:41:47 +01:00
2010-09-08 16:41:47 +01:00
2010-06-03 14:10:55 +01:00
2010-09-03 12:14:50 +01:00
2010-03-02 11:12:32 +00:00
2010-09-08 16:41:47 +01:00
2010-03-02 11:12:32 +00:00
2010-09-08 16:41:47 +01:00
2009-07-10 11:38:42 +01:00
2010-09-08 16:41:47 +01:00
2010-09-08 16:41:47 +01:00
2010-09-08 16:41:47 +01:00
2010-09-08 16:41:47 +01:00
2010-03-02 11:12:32 +00:00
2010-02-03 14:38:13 +00:00
2010-02-01 10:40:34 +00:00
2010-03-02 11:12:32 +00:00