summaryrefslogtreecommitdiff
path: root/gtk/a11y/gtkatspicontext.c
diff options
context:
space:
mode:
Diffstat (limited to 'gtk/a11y/gtkatspicontext.c')
-rw-r--r--gtk/a11y/gtkatspicontext.c30
1 files changed, 24 insertions, 6 deletions
diff --git a/gtk/a11y/gtkatspicontext.c b/gtk/a11y/gtkatspicontext.c
index 1128165b4e..4c3746ba24 100644
--- a/gtk/a11y/gtkatspicontext.c
+++ b/gtk/a11y/gtkatspicontext.c
@@ -24,18 +24,20 @@
#include "gtkaccessibleprivate.h"
+#include "gtkatspiactionprivate.h"
#include "gtkatspicacheprivate.h"
-#include "gtkatspirootprivate.h"
+#include "gtkatspieditabletextprivate.h"
#include "gtkatspiprivate.h"
-#include "gtkatspiutilsprivate.h"
+#include "gtkatspirootprivate.h"
+#include "gtkatspiselectionprivate.h"
#include "gtkatspitextprivate.h"
-#include "gtkatspieditabletextprivate.h"
+#include "gtkatspiutilsprivate.h"
#include "gtkatspivalueprivate.h"
-#include "gtkatspiselectionprivate.h"
#include "a11y/atspi/atspi-accessible.h"
-#include "a11y/atspi/atspi-text.h"
+#include "a11y/atspi/atspi-action.h"
#include "a11y/atspi/atspi-editabletext.h"
+#include "a11y/atspi/atspi-text.h"
#include "a11y/atspi/atspi-value.h"
#include "a11y/atspi/atspi-selection.h"
@@ -331,6 +333,7 @@ collect_relations (GtkAtSpiContext *self,
}
}
/* }}} */
+
/* {{{ Accessible implementation */
static int
get_index_in_parent (GtkWidget *widget)
@@ -696,8 +699,8 @@ static const GDBusInterfaceVTable accessible_vtable = {
handle_accessible_get_property,
NULL,
};
-
/* }}} */
+
/* {{{ Change notification */
static void
emit_text_changed (GtkAtSpiContext *self,
@@ -1031,6 +1034,21 @@ gtk_at_spi_context_register_object (GtkAtSpiContext *self)
self->n_registered_objects++;
}
+ vtable = gtk_atspi_get_action_vtable (accessible);
+ if (vtable)
+ {
+ g_variant_builder_add (&interfaces, "s", atspi_action_interface.name);
+ self->registration_ids[self->n_registered_objects] =
+ g_dbus_connection_register_object (self->connection,
+ self->context_path,
+ (GDBusInterfaceInfo *) &atspi_action_interface,
+ vtable,
+ self,
+ NULL,
+ NULL);
+ self->n_registered_objects++;
+ }
+
self->interfaces = g_variant_ref_sink (g_variant_builder_end (&interfaces));
}