summaryrefslogtreecommitdiff
path: root/gtk/gtkatcontext.c
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2020-07-27 22:51:34 -0400
committerMatthias Clasen <mclasen@redhat.com>2020-07-28 08:41:24 -0400
commitecc329fa2aa877f34026b5f4988143d4ae1905e2 (patch)
treea8abafc59ac78a70ab00a85d44d7e6e92c59be01 /gtk/gtkatcontext.c
parent5fc5e52f52640fd7a364e5c4e7260343936575a4 (diff)
downloadgtk+-ecc329fa2aa877f34026b5f4988143d4ae1905e2.tar.gz
a11y: Add change notification to GtkATContext
Emit a ::state-change signal when state changes; this was already a vfunc, but we want to listen to state changes from the inspector too.
Diffstat (limited to 'gtk/gtkatcontext.c')
-rw-r--r--gtk/gtkatcontext.c30
1 files changed, 23 insertions, 7 deletions
diff --git a/gtk/gtkatcontext.c b/gtk/gtkatcontext.c
index aa5b424cc2..aefce4df4f 100644
--- a/gtk/gtkatcontext.c
+++ b/gtk/gtkatcontext.c
@@ -49,8 +49,17 @@ enum
N_PROPS
};
+enum
+{
+ STATE_CHANGE,
+
+ LAST_SIGNAL
+};
+
static GParamSpec *obj_props[N_PROPS];
+static guint obj_signals[LAST_SIGNAL];
+
static void
gtk_at_context_finalize (GObject *gobject)
{
@@ -163,6 +172,17 @@ gtk_at_context_class_init (GtkATContextClass *klass)
G_PARAM_CONSTRUCT_ONLY |
G_PARAM_STATIC_STRINGS);
+ obj_signals[STATE_CHANGE] =
+ g_signal_new ("state-change",
+ G_TYPE_FROM_CLASS (gobject_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GtkATContextClass, state_change),
+ NULL, NULL,
+ NULL,
+ G_TYPE_NONE, 6,
+ G_TYPE_UINT, G_TYPE_UINT, G_TYPE_UINT,
+ G_TYPE_POINTER, G_TYPE_POINTER, G_TYPE_POINTER);
+
g_object_class_install_properties (gobject_class, N_PROPS, obj_props);
}
@@ -399,13 +419,9 @@ gtk_at_context_update (GtkATContext *self)
GtkAccessibleRelationChange changed_relations =
gtk_accessible_attribute_set_get_changed (self->relations);
- GTK_AT_CONTEXT_GET_CLASS (self)->state_change (self,
- changed_states,
- changed_properties,
- changed_relations,
- self->states,
- self->properties,
- self->relations);
+ g_signal_emit (self, obj_signals[STATE_CHANGE], 0,
+ changed_states, changed_properties, changed_relations,
+ self->states, self->properties, self->relations);
}
/*< private >