[gtk/wip/ebassi/a11y-2] a11y: Drop notify_gtk() from GtkRangeAccessible
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/wip/ebassi/a11y-2] a11y: Drop notify_gtk() from GtkRangeAccessible
- Date: Thu, 23 Apr 2020 19:18:03 +0000 (UTC)
commit 294b7b22adc49d47db27a57ecd140973eaf8ddc9
Author: Emmanuele Bassi <ebassi gnome org>
Date: Thu Apr 23 20:16:31 2020 +0100
a11y: Drop notify_gtk() from GtkRangeAccessible
Let the GtkRange notify the accessible instance when the adjustment
changes.
gtk/a11y/gtkrangeaccessible.c | 28 +++++++---------------------
gtk/a11y/gtkrangeaccessible.h | 3 +++
gtk/gtkrange.c | 9 +++++++++
3 files changed, 19 insertions(+), 21 deletions(-)
---
diff --git a/gtk/a11y/gtkrangeaccessible.c b/gtk/a11y/gtkrangeaccessible.c
index 93cfb62a7e..e91da0565c 100644
--- a/gtk/a11y/gtkrangeaccessible.c
+++ b/gtk/a11y/gtkrangeaccessible.c
@@ -73,6 +73,13 @@ gtk_range_accessible_widget_unset (GtkAccessible *accessible)
}
}
+void
+gtk_range_accessible_update_adjustment (GtkRangeAccessible *self)
+{
+ gtk_range_accessible_widget_unset (GTK_ACCESSIBLE (self));
+ gtk_range_accessible_widget_set (GTK_ACCESSIBLE (self));
+}
+
static void
gtk_range_accessible_initialize (AtkObject *obj,
gpointer data)
@@ -81,37 +88,16 @@ gtk_range_accessible_initialize (AtkObject *obj,
obj->role = ATK_ROLE_SLIDER;
}
-static void
-gtk_range_accessible_notify_gtk (GObject *obj,
- GParamSpec *pspec)
-{
- GtkWidget *widget = GTK_WIDGET (obj);
- AtkObject *range;
-
- if (strcmp (pspec->name, "adjustment") == 0)
- {
- range = gtk_widget_get_accessible (widget);
- gtk_range_accessible_widget_unset (GTK_ACCESSIBLE (range));
- gtk_range_accessible_widget_set (GTK_ACCESSIBLE (range));
- }
- else
- GTK_WIDGET_ACCESSIBLE_CLASS (gtk_range_accessible_parent_class)->notify_gtk (obj, pspec);
-}
-
-
static void
gtk_range_accessible_class_init (GtkRangeAccessibleClass *klass)
{
AtkObjectClass *class = ATK_OBJECT_CLASS (klass);
GtkAccessibleClass *accessible_class = (GtkAccessibleClass*)klass;
- GtkWidgetAccessibleClass *widget_class = (GtkWidgetAccessibleClass*)klass;
class->initialize = gtk_range_accessible_initialize;
accessible_class->widget_set = gtk_range_accessible_widget_set;
accessible_class->widget_unset = gtk_range_accessible_widget_unset;
-
- widget_class->notify_gtk = gtk_range_accessible_notify_gtk;
}
static void
diff --git a/gtk/a11y/gtkrangeaccessible.h b/gtk/a11y/gtkrangeaccessible.h
index 4d0352628a..1607ed16ed 100644
--- a/gtk/a11y/gtkrangeaccessible.h
+++ b/gtk/a11y/gtkrangeaccessible.h
@@ -52,6 +52,9 @@ struct _GtkRangeAccessibleClass
GDK_AVAILABLE_IN_ALL
GType gtk_range_accessible_get_type (void);
+/*< private >*/
+void gtk_range_accessible_update_adjustment (GtkRangeAccessible *self);
+
G_END_DECLS
#endif /* __GTK_RANGE_ACCESSIBLE_H__ */
diff --git a/gtk/gtkrange.c b/gtk/gtkrange.c
index 54292f1725..01704ccf94 100644
--- a/gtk/gtkrange.c
+++ b/gtk/gtkrange.c
@@ -673,6 +673,15 @@ gtk_range_set_adjustment (GtkRange *range,
gtk_range_adjustment_changed (adjustment, range);
gtk_range_adjustment_value_changed (adjustment, range);
+
+ {
+ GtkRangeAccessible *accessible =
+ GTK_RANGE_ACCESSIBLE (_gtk_widget_peek_accessible (GTK_WIDGET (range)));
+
+ if (accessible != NULL)
+ gtk_range_accessible_update_adjustment (accessible);
+ }
+
g_object_notify_by_pspec (G_OBJECT (range), properties[PROP_ADJUSTMENT]);
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]