[gtk/a11y/atspi-child] a11y: Move ChildrenChanged emitter to ATSPI utilities
- From: Emmanuele Bassi <ebassi src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gtk/a11y/atspi-child] a11y: Move ChildrenChanged emitter to ATSPI utilities
- Date: Wed, 21 Oct 2020 14:39:30 +0000 (UTC)
commit 698cbee1fbe3e8d30c20effe3de14bca13fa4fec
Author: Emmanuele Bassi <ebassi gnome org>
Date: Wed Oct 21 15:16:54 2020 +0100
a11y: Move ChildrenChanged emitter to ATSPI utilities
We are going to use it from GtkAtSpiRoot, which is not a
GtkAtSpiContext.
gtk/a11y/gtkatspicontext.c | 32 +++++++-------------------------
gtk/a11y/gtkatspiutils.c | 34 ++++++++++++++++++++++++++++++++++
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
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]