gir: gtk_widget_add_tick_callback has its destroy callback set to async scope
The function
/**
* gtk_widget_add_tick_callback:
* @widget: a `GtkWidget`
* @callback: function to call for updating animations
* @user_data: (closure): data to pass to @callback
* @notify: function to call to free @user_data when the callback is removed.
*
* Queues an animation frame update and adds a callback to be called
* before each frame.
*
* Until the tick callback is removed, it will be called frequently
* (usually at the frame rate of the output device or as quickly as
* the application can be repainted, whichever is slower). For this
* reason, is most suitable for handling graphics that change every
* frame or every few frames. The tick callback does not automatically
* imply a relayout or repaint. If you want a repaint or relayout, and
* aren’t changing widget properties that would trigger that (for example,
* changing the text of a `GtkLabel`), then you will have to call
* [method@Gtk.Widget.queue_resize] or [method@Gtk.Widget.queue_draw]
* yourself.
*
* [method@Gdk.FrameClock.get_frame_time] should generally be used
* for timing continuous animations and
* [method@Gdk.FrameTimings.get_predicted_presentation_time] if you are
* trying to display isolated frames at particular times.
*
* This is a more convenient alternative to connecting directly to the
* [signal@Gdk.FrameClock::update] signal of `GdkFrameClock`, since you
* don't have to worry about when a `GdkFrameClock` is assigned to a widget.
*
* Returns: an id for the connection of this callback. Remove the callback
* by passing the id returned from this function to
* [method@Gtk.Widget.remove_tick_callback]
*/
guint
gtk_widget_add_tick_callback (GtkWidget *widget,
GtkTickCallback callback,
gpointer user_data,
GDestroyNotify notify)
Generates
<method name="add_tick_callback" c:identifier="gtk_widget_add_tick_callback">
<return-value transfer-ownership="none">
<doc xml:space="preserve">an id for the connection of this callback. Remove the callback
by passing the id returned from this function to
[method@Gtk.Widget.remove_tick_callback]</doc>
<type name="guint" c:type="guint"/>
</return-value>
<parameters>
<instance-parameter name="widget" transfer-ownership="none">
<doc xml:space="preserve">a `GtkWidget`</doc>
<type name="Widget" c:type="GtkWidget*"/>
</instance-parameter>
<parameter name="callback" transfer-ownership="none" scope="notified" closure="1" destroy="2">
<doc xml:space="preserve">function to call for updating animations</doc>
<type name="TickCallback" c:type="GtkTickCallback"/>
</parameter>
<parameter name="user_data" transfer-ownership="none" nullable="1" allow-none="1">
<doc xml:space="preserve">data to pass to @callback</doc>
<type name="gpointer" c:type="gpointer"/>
</parameter>
<parameter name="notify" transfer-ownership="none" scope="async">
<doc xml:space="preserve">function to call to free @user_data when the callback is removed.</doc>
<type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
</parameter>
</parameters>
</method>
Note the scope="async"
in the notify
parameter.