Commit 8db55428 authored by Daniel Boles's avatar Daniel Boles

GObject: Elaborate notify emission timing, options

We only said receiving ::notify doesn’t always guarantee that anything
actually changed, but we didn’t explain how we can get that guarantee.

https://bugzilla.gnome.org/show_bug.cgi?id=795096
parent ff0c30b5
...@@ -477,11 +477,17 @@ g_object_do_class_init (GObjectClass *class) ...@@ -477,11 +477,17 @@ g_object_do_class_init (GObjectClass *class)
* @gobject: the object which received the signal. * @gobject: the object which received the signal.
* @pspec: the #GParamSpec of the property which changed. * @pspec: the #GParamSpec of the property which changed.
* *
* The notify signal is emitted on an object when one of its * The notify signal is emitted on an object when one of its properties has
* properties has been changed. Note that getting this signal * its value set through g_object_set_property(), g_object_set(), et al.
* doesn't guarantee that the value of the property has actually *
* changed, it may also be emitted when the setter for the property * Note that getting this signal doesn’t itself guarantee that the value of
* is called to reinstate the previous value. * the property has actually changed. When it is emitted is determined by the
* derived GObject class. If the implementor did not create the property with
* %G_PARAM_EXPLICIT_NOTIFY, then any call to g_object_set_property() results
* in ::notify being emitted, even if the new value is the same as the old.
* If they did pass %G_PARAM_EXPLICIT_NOTIFY, then this signal is emitted only
* when they explicitly call g_object_notify() or g_object_notify_by_pspec(),
* and common practice is to avoid doing so if the value remained unchanged.
* *
* This signal is typically used to obtain change notification for a * This signal is typically used to obtain change notification for a
* single property, by specifying the property name as a detail in the * single property, by specifying the property name as a detail in the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment