From a04ce41799af8b6a7750b3e2f369d3708917a971 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 16 Apr 2021 22:18:52 -0400 Subject: [PATCH 1/2] testatcontext: Print out platform changes This helps debugging what changes orca sees. --- gtk/gtktestatcontext.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/gtk/gtktestatcontext.c b/gtk/gtktestatcontext.c index 601be1144e..a093fe6222 100644 --- a/gtk/gtktestatcontext.c +++ b/gtk/gtktestatcontext.c @@ -78,12 +78,34 @@ gtk_test_at_context_state_change (GtkATContext *self, } } +static void +gtk_test_at_context_platform_change (GtkATContext *self, + GtkAccessiblePlatformChange changed_platform) +{ + if (GTK_DEBUG_CHECK (A11Y)) + { + GtkAccessible *accessible; + + accessible = gtk_at_context_get_accessible (self); + + g_print ("*** Accessible platform state changed for accessible ā€œ%sā€:\n", + G_OBJECT_TYPE_NAME (accessible)); + if (changed_platform & GTK_ACCESSIBLE_PLATFORM_CHANGE_FOCUSABLE) + g_print ("*** focusable = %d\n", + gtk_accessible_get_platform_state (accessible, GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSABLE)); + if (changed_platform & GTK_ACCESSIBLE_PLATFORM_CHANGE_FOCUSED) + g_print ("*** focused = %d\n", + gtk_accessible_get_platform_state (accessible, GTK_ACCESSIBLE_PLATFORM_STATE_FOCUSED)); + } +} + static void gtk_test_at_context_class_init (GtkTestATContextClass *klass) { GtkATContextClass *context_class = GTK_AT_CONTEXT_CLASS (klass); context_class->state_change = gtk_test_at_context_state_change; + context_class->platform_change = gtk_test_at_context_platform_change; } static void From a804e4bd8c2cb61c612b512c524a163d9fa5ba87 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Sat, 17 Apr 2021 11:59:04 -0400 Subject: [PATCH 2/2] a11y: Add more debug spew This is in an attempt to figure out why orca won't speak. --- gtk/a11y/gtkatspicache.c | 7 ++++++- gtk/a11y/gtkatspicontext.c | 4 ++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/gtk/a11y/gtkatspicache.c b/gtk/a11y/gtkatspicache.c index e1c7b5d628..9e3b22b281 100644 --- a/gtk/a11y/gtkatspicache.c +++ b/gtk/a11y/gtkatspicache.c @@ -252,6 +252,7 @@ handle_cache_method (GDBusConnection *connection, if (g_strcmp0 (method_name, "GetItems") == 0) { GVariantBuilder builder = G_VARIANT_BUILDER_INIT (G_VARIANT_TYPE ("(" GET_ITEMS_SIGNATURE ")")); + GVariant *items; /* Prevent the emission os signals while collecting accessible * objects as the result of walking the accessible tree @@ -261,10 +262,14 @@ handle_cache_method (GDBusConnection *connection, g_variant_builder_open (&builder, G_VARIANT_TYPE (GET_ITEMS_SIGNATURE)); collect_cached_objects (self, &builder); g_variant_builder_close (&builder); + items = g_variant_builder_end (&builder); self->in_get_items = FALSE; - g_dbus_method_invocation_return_value (invocation, g_variant_builder_end (&builder)); + GTK_NOTE (A11Y, + g_message ("Returning %lu items\n", g_variant_n_children (items))); + + g_dbus_method_invocation_return_value (invocation, items); } } diff --git a/gtk/a11y/gtkatspicontext.c b/gtk/a11y/gtkatspicontext.c index 23d299818c..3ee0bcb35c 100644 --- a/gtk/a11y/gtkatspicontext.c +++ b/gtk/a11y/gtkatspicontext.c @@ -463,6 +463,8 @@ handle_accessible_method (GDBusConnection *connection, { GtkAtSpiContext *self = user_data; + GTK_NOTE (A11Y, g_message ("handling %s on %s", method_name, object_path)); + if (g_strcmp0 (method_name, "GetRole") == 0) { guint atspi_role = gtk_atspi_role_for_context (GTK_AT_CONTEXT (self)); @@ -666,6 +668,8 @@ handle_accessible_get_property (GDBusConnection *connection, GtkAccessible *accessible = gtk_at_context_get_accessible (GTK_AT_CONTEXT (self)); + GTK_NOTE (A11Y, g_message ("handling GetProperty %s on %s", property_name, object_path)); + if (g_strcmp0 (property_name, "Name") == 0) { char *label = gtk_at_context_get_name (GTK_AT_CONTEXT (self));