Make adjustment setters behave

This commit is contained in:
Matthias Clasen
2023-03-30 21:18:35 -04:00
parent 3b96b053ad
commit fdce10fb96
5 changed files with 11 additions and 6 deletions

View File

@@ -376,7 +376,7 @@ gtk_range_class_init (GtkRangeClass *class)
properties[PROP_ADJUSTMENT] =
g_param_spec_object ("adjustment", NULL, NULL,
GTK_TYPE_ADJUSTMENT,
GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT);
GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkRange:inverted: (attributes org.gtk.Property.get=gtk_range_get_inverted org.gtk.Property.set=gtk_range_set_inverted)

View File

@@ -229,7 +229,7 @@ gtk_scale_button_class_init (GtkScaleButtonClass *klass)
PROP_ADJUSTMENT,
g_param_spec_object ("adjustment", NULL, NULL,
GTK_TYPE_ADJUSTMENT,
GTK_PARAM_READWRITE));
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY));
/**
* GtkScaleButton:icons: (attributes org.gtk.Property.set=gtk_scale_button_set_icons)

View File

@@ -218,7 +218,7 @@ gtk_scrollbar_class_init (GtkScrollbarClass *class)
props[PROP_ADJUSTMENT] =
g_param_spec_object ("adjustment", NULL, NULL,
GTK_TYPE_ADJUSTMENT,
GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT);
GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT|G_PARAM_EXPLICIT_NOTIFY);
g_object_class_install_properties (object_class, LAST_PROP, props);
@@ -310,6 +310,9 @@ gtk_scrollbar_set_adjustment (GtkScrollbar *self,
g_return_if_fail (adjustment == NULL || GTK_IS_ADJUSTMENT (adjustment));
adj = gtk_range_get_adjustment (GTK_RANGE (priv->range));
if (adj == adjustment)
return;
if (adj)
{
g_signal_handlers_disconnect_by_func (adj, gtk_scrollbar_adjustment_changed, self);

View File

@@ -587,7 +587,7 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class)
properties[PROP_HADJUSTMENT] =
g_param_spec_object ("hadjustment", NULL, NULL,
GTK_TYPE_ADJUSTMENT,
GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT);
GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkScrolleWindow:vadjustment: (attributes org.gtk.Property.get=gtk_scrolled_window_get_vadjustment org.gtk.Property.set=gtk_scrolled_window_set_vadjustment)
@@ -597,7 +597,7 @@ gtk_scrolled_window_class_init (GtkScrolledWindowClass *class)
properties[PROP_VADJUSTMENT] =
g_param_spec_object ("vadjustment", NULL, NULL,
GTK_TYPE_ADJUSTMENT,
GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT);
GTK_PARAM_READWRITE|G_PARAM_CONSTRUCT|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkScrolledWindow:hscrollbar-policy:

View File

@@ -374,7 +374,7 @@ gtk_spin_button_class_init (GtkSpinButtonClass *class)
spinbutton_props[PROP_ADJUSTMENT] =
g_param_spec_object ("adjustment", NULL, NULL,
GTK_TYPE_ADJUSTMENT,
GTK_PARAM_READWRITE);
GTK_PARAM_READWRITE|G_PARAM_EXPLICIT_NOTIFY);
/**
* GtkSpinButton:climb-rate: (attributes org.gtk.Property.get=gtk_spin_button_get_climb_rate org.gtk.Property.set=gtk_spin_button_set_climb_rate)
@@ -1860,6 +1860,8 @@ gtk_spin_button_set_adjustment (GtkSpinButton *spin_button,
if (!adjustment)
adjustment = gtk_adjustment_new (0.0, 0.0, 0.0, 0.0, 0.0, 0.0);
else if (spin_button->adjustment == adjustment)
return;
gtk_spin_button_configure (spin_button,
adjustment,