summaryrefslogtreecommitdiff
path: root/gtk/gtkcenterbox.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2023-03-30 17:32:38 -0400
committerMatthias Clasen <mclasen@redhat.com>2023-03-30 17:32:38 -0400
commit577195a243686a50f0a06d7b6b2ec598db3d2d1e (patch)
treed0d550629879c1cc8f23ed9a9ce252298cd55812 /gtk/gtkcenterbox.c
parent2650c4e974cdeefff3656f9e9cbd2df2eb9725a9 (diff)
downloadgtk+-577195a243686a50f0a06d7b6b2ec598db3d2d1e.tar.gz
Make widget property setters behave
We want to allow setting a property to its current value, while still having a precondition for widget->parent being NULL otherwise.
Diffstat (limited to 'gtk/gtkcenterbox.c')
-rw-r--r--gtk/gtkcenterbox.c18
1 files changed, 18 insertions, 0 deletions
diff --git a/gtk/gtkcenterbox.c b/gtk/gtkcenterbox.c
index 97bce16698..367c0eab0b 100644
--- a/gtk/gtkcenterbox.c
+++ b/gtk/gtkcenterbox.c
@@ -332,6 +332,12 @@ gtk_center_box_set_start_widget (GtkCenterBox *self,
{
GtkLayoutManager *layout_manager;
+ g_return_if_fail (GTK_IS_CENTER_BOX (self));
+ g_return_if_fail (child == NULL || self->start_widget == child || gtk_widget_get_parent (child) == NULL);
+
+ if (self->start_widget == child)
+ return;
+
if (self->start_widget)
gtk_widget_unparent (self->start_widget);
@@ -360,6 +366,12 @@ gtk_center_box_set_center_widget (GtkCenterBox *self,
{
GtkLayoutManager *layout_manager;
+ g_return_if_fail (GTK_IS_CENTER_BOX (self));
+ g_return_if_fail (child == NULL || self->center_widget == child || gtk_widget_get_parent (child) == NULL);
+
+ if (self->center_widget == child)
+ return;
+
if (self->center_widget)
gtk_widget_unparent (self->center_widget);
@@ -388,6 +400,12 @@ gtk_center_box_set_end_widget (GtkCenterBox *self,
{
GtkLayoutManager *layout_manager;
+ g_return_if_fail (GTK_IS_CENTER_BOX (self));
+ g_return_if_fail (child == NULL || self->end_widget == child || gtk_widget_get_parent (child) == NULL);
+
+ if (self->end_widget == child)
+ return;
+
if (self->end_widget)
gtk_widget_unparent (self->end_widget);