[gtk+] AccelLabel: set_accel_widget() arg is nullable
- From: Daniel Boles <dboles src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk+] AccelLabel: set_accel_widget() arg is nullable
- Date: Mon, 7 Aug 2017 09:30:32 +0000 (UTC)
commit a42634c3e5676ec05c108bc0dc45e95471e4ad34
Author: Daniel Boles <dboles src gnome org>
Date: Mon Aug 7 10:27:52 2017 +0100
AccelLabel: set_accel_widget() arg is nullable
gtk/gtkaccellabel.c | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/gtk/gtkaccellabel.c b/gtk/gtkaccellabel.c
index fa29b39..a383e03 100644
--- a/gtk/gtkaccellabel.c
+++ b/gtk/gtkaccellabel.c
@@ -491,15 +491,17 @@ accel_widget_weak_ref_cb (GtkAccelLabel *accel_label,
/**
* gtk_accel_label_set_accel_widget:
* @accel_label: a #GtkAccelLabel
- * @accel_widget: the widget to be monitored.
+ * @accel_widget: (nullable): the widget to be monitored, or %NULL
*
- * Sets the widget to be monitored by this accelerator label.
+ * Sets the widget to be monitored by this accelerator label. Passing %NULL for
+ * @accel_widget will dissociate @accel_label from its current widget, if any.
*/
void
gtk_accel_label_set_accel_widget (GtkAccelLabel *accel_label,
GtkWidget *accel_widget)
{
g_return_if_fail (GTK_IS_ACCEL_LABEL (accel_label));
+
if (accel_widget)
g_return_if_fail (GTK_IS_WIDGET (accel_widget));
@@ -514,7 +516,9 @@ gtk_accel_label_set_accel_widget (GtkAccelLabel *accel_label,
g_object_weak_unref (G_OBJECT (accel_label->priv->accel_widget),
(GWeakNotify) accel_widget_weak_ref_cb, accel_label);
}
+
accel_label->priv->accel_widget = accel_widget;
+
if (accel_label->priv->accel_widget)
{
g_object_weak_ref (G_OBJECT (accel_label->priv->accel_widget),
@@ -524,6 +528,7 @@ gtk_accel_label_set_accel_widget (GtkAccelLabel *accel_label,
accel_label, G_CONNECT_SWAPPED);
refetch_widget_accel_closure (accel_label);
}
+
g_object_notify_by_pspec (G_OBJECT (accel_label), props[PROP_ACCEL_WIDGET]);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]