widget: Cache the widget's 'disabled' state
widget: Cache the widget's 'disabled' state

mx_widget_get_disabled previously had to recurse through the widget
tree to retrieve the disabled state. As this was called in the
get_pseudo_class implementation, this caused
mx_stylable_get_pseudo_class to be quite slow, and as this was called for
every stylesheet match, this caused significant slow-down when the style
changed.

Move this recursion to only happen when setting disabled or reparenting,
and cache the result in the widget private struct.

pwithnall/mx,jonnylamb/mx,pwithnall/mx,jonnylamb/mx,jonnylamb/mx,pwithnall/mx,pwithnall/mx,jonnylamb/mx,clutter-project/mx,clutter-project/mx,clutter-project/mx,clutter-project/mx