diff options
author | Emmanuele Bassi <ebassi@gnome.org> | 2020-10-21 15:16:54 +0100 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2020-10-21 15:18:23 +0100 |
commit | 698cbee1fbe3e8d30c20effe3de14bca13fa4fec (patch) | |
tree | 13d0c6824e782c4f673d13c418714874fcfcdcf6 | |
parent | f1e14c48582195f34225955aa5e2e9fc1a744cdd (diff) | |
download | gtk+-698cbee1fbe3e8d30c20effe3de14bca13fa4fec.tar.gz |
a11y: Move ChildrenChanged emitter to ATSPI utilities
We are going to use it from GtkAtSpiRoot, which is not a
GtkAtSpiContext.
-rw-r--r-- | gtk/a11y/gtkatspicontext.c | 32 | ||||
-rw-r--r-- | gtk/a11y/gtkatspiutils.c | 34 | ||||
-rw-r--r-- | gtk/a11y/gtkatspiutilsprivate.h | 8 |
3 files changed, 49 insertions, 25 deletions
diff --git a/gtk/a11y/gtkatspicontext.c b/gtk/a11y/gtkatspicontext.c index b5ff4cbbc5..a3b5d8bb22 100644 --- a/gtk/a11y/gtkatspicontext.c +++ b/gtk/a11y/gtkatspicontext.c @@ -816,33 +816,15 @@ emit_children_changed (GtkAtSpiContext *self, int idx, GtkAccessibleChildState state) { - const char *change; - - switch (state) - { - case GTK_ACCESSIBLE_CHILD_STATE_ADDED: - change = "add"; - break; - - case GTK_ACCESSIBLE_CHILD_STATE_REMOVED: - change = "remove"; - break; - - default: - g_assert_not_reached (); - return; - } - - GVariant *ref = gtk_at_spi_context_to_ref (child_context); + GVariant *child_ref = gtk_at_spi_context_to_ref (child_context); GVariant *context_ref = gtk_at_spi_context_to_ref (self); - g_dbus_connection_emit_signal (self->connection, - NULL, - self->context_path, - "org.a11y.atspi.Event.Object", - "ChildrenChanged", - g_variant_new ("(siiv@(so))", change, idx, 0, ref, context_ref), - NULL); + gtk_at_spi_emit_children_changed (self->connection, + self->context_path, + state, + idx, + child_ref, + context_ref); } static void diff --git a/gtk/a11y/gtkatspiutils.c b/gtk/a11y/gtkatspiutils.c index 1fef628144..fad5ee10fd 100644 --- a/gtk/a11y/gtkatspiutils.c +++ b/gtk/a11y/gtkatspiutils.c @@ -305,3 +305,37 @@ gtk_at_spi_null_ref (void) { return g_variant_new ("(so)", "", "/org/a11y/atspi/null"); } + +void +gtk_at_spi_emit_children_changed (GDBusConnection *connection, + const char *path, + GtkAccessibleChildState state, + int idx, + GVariant *child_ref, + GVariant *sender_ref) +{ + const char *change; + + switch (state) + { + case GTK_ACCESSIBLE_CHILD_STATE_ADDED: + change = "add"; + break; + + case GTK_ACCESSIBLE_CHILD_STATE_REMOVED: + change = "remove"; + break; + + default: + g_assert_not_reached (); + return; + } + + g_dbus_connection_emit_signal (connection, + NULL, + path, + "org.a11y.atspi.Event.Object", + "ChildrenChanged", + g_variant_new ("(siiv@(so))", change, idx, 0, child_ref, sender_ref), + NULL); +} diff --git a/gtk/a11y/gtkatspiutilsprivate.h b/gtk/a11y/gtkatspiutilsprivate.h index 20b0b09305..d54f5896c7 100644 --- a/gtk/a11y/gtkatspiutilsprivate.h +++ b/gtk/a11y/gtkatspiutilsprivate.h @@ -31,4 +31,12 @@ gtk_atspi_role_for_context (GtkATContext *context); GVariant * gtk_at_spi_null_ref (void); +void +gtk_at_spi_emit_children_changed (GDBusConnection *connection, + const char *path, + GtkAccessibleChildState state, + int idx, + GVariant *child_ref, + GVariant *sender_ref); + G_END_DECLS |