Skip to content
  • Jonas Dreßler's avatar
    clutter: Use G_PARAM_EXPLICIT_NOTIFY for actor and stage properties · a488aa3f
    Jonas Dreßler authored
    Turns out GObject implicitly notifies all properties by default as soon
    as a property setter is called, no matter if the property actually
    changed or not. One can opt-out of this behavior by setting the
    G_PARAM_EXPLICIT_NOTIFY flag.
    
    So since almost all our properties get notified explicitely (well,
    except ClutterActors deprecated show-on-set-parent property), set this
    flag for all properties of ClutterActor and ClutterStage now. This
    significantly reduces the number of notify:: signals emitted on
    ClutterActors, because in gnome-shell javascript we usually set GObject
    properties directly, not by going through the extra setter method.
    
    More cleanups can be done in the future, since this flag is suitable for
    almost every property in Clutter and even Mutter.
    
    This fixes a crash where we'd hit a newly introduced assertion in
    on_device_actor_reactive_changed() of ClutterStage because
    notify::reactive got emitted multiple times.
    a488aa3f