diff options
author | Matthias Clasen <mclasen@redhat.com> | 2020-07-27 22:51:34 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2020-07-28 08:41:24 -0400 |
commit | ecc329fa2aa877f34026b5f4988143d4ae1905e2 (patch) | |
tree | a8abafc59ac78a70ab00a85d44d7e6e92c59be01 /gtk/gtkatcontext.c | |
parent | 5fc5e52f52640fd7a364e5c4e7260343936575a4 (diff) | |
download | gtk+-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.c | 30 |
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 > |