diff options
Diffstat (limited to 'gtk/a11y/gtkatspicontext.c')
-rw-r--r-- | gtk/a11y/gtkatspicontext.c | 30 |
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)); } |