From 5bdba7ea9dc6d4f71fe403e7f378f8c05d141129 Mon Sep 17 00:00:00 2001 From: billh Date: Thu, 11 Apr 2002 12:15:19 +0000 Subject: [PATCH] Bugfix for 78249. git-svn-id: http://svn.gnome.org/svn/at-spi/trunk@265 e2bd861d-eb25-0410-b326-f6ed22b6b98c --- ChangeLog | 7 +++++++ atk-bridge/bridge.c | 6 ++++-- test/app.c | 2 +- test/keysynth-demo.c | 2 +- test/simple-at.c | 30 ++++++++++++++++++++++++++---- util/magnifier.c | 2 +- 6 files changed, 40 insertions(+), 9 deletions(-) diff --git a/ChangeLog b/ChangeLog index 7145e08..68966ca 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +2002-04-11 Bill Haneman + + * test/app.c, test/keysynth-demo.c: + * util/magnifier.c: + Replace use of snprintf with g_snprintf. + (fix for bugzilla 78249) + 2002-03-27 Michael Meeks * Version 0.10.0 diff --git a/atk-bridge/bridge.c b/atk-bridge/bridge.c index a3e5653..f2fae82 100644 --- a/atk-bridge/bridge.c +++ b/atk-bridge/bridge.c @@ -397,8 +397,10 @@ spi_atk_bridge_property_event_listener (GSignalInvocationHint *signal_hint, s2 = g_type_name (G_OBJECT_TYPE (g_value_get_object (param_values + 0))); s = atk_object_get_name (ATK_OBJECT (g_value_get_object (param_values + 0))); - fprintf (stderr, "Received (property) signal %s:%s from object %s (gail %s)\n", - g_type_name (signal_query.itype), name, s, s2); + values = (AtkPropertyValues*) g_value_get_pointer (param_values + 1); + fprintf (stderr, "Received (property) signal %s:%s:%s from object %s (gail %s)\n", + g_type_name (signal_query.itype), name, values->property_name, s, s2); + #endif gobject = g_value_get_object (param_values + 0); diff --git a/test/app.c b/test/app.c index dc676d3..c11b29e 100644 --- a/test/app.c +++ b/test/app.c @@ -53,7 +53,7 @@ main(int argc, char **argv) } /* Create the accesssible application server object */ - snprintf(sbuf, APP_STATIC_BUFF_SZ, "application-%s", argv[0]); + g_snprintf(sbuf, APP_STATIC_BUFF_SZ, "application-%s", argv[0]); atko = g_object_new (atk_object_get_type(), NULL); atk_object_set_name (atko, sbuf); diff --git a/test/keysynth-demo.c b/test/keysynth-demo.c index 305f805..a3635d0 100644 --- a/test/keysynth-demo.c +++ b/test/keysynth-demo.c @@ -243,7 +243,7 @@ label_buttons(SPIBoolean shifted) /* Note: these routines are not i18n-savvy, we need to use XIM, other methods here */ if (keysym && g_ascii_isprint((int)keysym)) { - snprintf (label, 2, "%c", (int) keysym); + g_snprintf (label, 2, "%c", (int) keysym); } else { diff --git a/test/simple-at.c b/test/simple-at.c index 0bc34bb..d35ade7 100644 --- a/test/simple-at.c +++ b/test/simple-at.c @@ -51,6 +51,7 @@ static void print_accessible_tree (Accessible *accessible, char *prefix); static SPIBoolean use_magnifier = FALSE; static SPIBoolean use_festival = FALSE; static SPIBoolean festival_chatty = FALSE; +static SPIBoolean name_changed = FALSE; static AccessibleEventListener *focus_listener; static AccessibleEventListener *property_listener; @@ -94,7 +95,9 @@ main (int argc, char **argv) text_listener = SPI_createAccessibleEventListener (report_text_event, NULL); button_listener = SPI_createAccessibleEventListener (report_button_press, NULL); SPI_registerGlobalEventListener (focus_listener, "focus:"); - SPI_registerGlobalEventListener (property_listener, "object:property-change:accessible-selection"); + SPI_registerGlobalEventListener (property_listener, "object:property-change"); +/* :accessible-selection"); */ + SPI_registerGlobalEventListener (property_listener, "object:property-change:accessible-name"); SPI_registerGlobalEventListener (generic_listener, "object:selection-changed"); SPI_registerGlobalEventListener (generic_listener, "object:children-changed"); SPI_registerGlobalEventListener (generic_listener, "object:visible-data-changed"); @@ -228,6 +231,8 @@ report_focussed_accessible (Accessible *obj, SPIBoolean shutup_previous_speech) char *s; int len; long x, y, width, height; + /* hack for GUADEC demo, to make sure name changes are spoken */ + shutup_previous_speech = (shutup_previous_speech && !name_changed); if (use_festival) { @@ -309,7 +314,6 @@ report_focus_event (const AccessibleEvent *event, void *user_data) char *s; g_return_if_fail (event->source != NULL); - s = Accessible_getName (event->source); if (s) { @@ -318,6 +322,7 @@ report_focus_event (const AccessibleEvent *event, void *user_data) report_focussed_accessible (event->source, TRUE); } Accessible_getParent (event->source); + name_changed = FALSE; } void @@ -329,10 +334,10 @@ report_generic_event (const AccessibleEvent *event, void *user_data) void report_text_event (const AccessibleEvent *event, void *user_data) { + AccessibleText *text = Accessible_getText (event->source); fprintf (stderr, "%s event received\n", event->type); - if (use_magnifier) + if (use_magnifier && strcmp (event->type, "object:text-changed")) { - AccessibleText *text = Accessible_getText (event->source); long offset = AccessibleText_getCaretOffset (text); long x, y, w, h; fprintf (stderr, "offset %d\n", (int) offset); @@ -341,6 +346,13 @@ report_text_event (const AccessibleEvent *event, void *user_data) fprintf (stderr, "new roi %d %d %d %d\n", (int) x, (int) y, (int) w, (int) h); magnifier_set_roi ((short) 0, x, y, w, h); } + if (!strcmp (event->type, "object:text-changed")) + { + long start, end; + char *new_text = AccessibleText_getTextAtOffset (text, (long) 0, SPI_TEXT_BOUNDARY_SENTENCE_START, &start, &end); + _festival_say (new_text, "voice_kal_diphone", FALSE); + SPI_freeString (new_text); + } } void @@ -366,6 +378,7 @@ check_property_change (const AccessibleEvent *event, void *user_data) int n_selections; int i; char *s; + fprintf (stderr, "property change event!\n"); if (selection) { n_selections = (int) AccessibleSelection_getNSelectedChildren (selection); @@ -384,6 +397,15 @@ check_property_change (const AccessibleEvent *event, void *user_data) report_focussed_accessible (obj, i==0); } } + else if (!strcmp (event->type, "object:property-change:accessible-name")) + { + name_changed = TRUE; + report_focussed_accessible (event->source, TRUE); + } + else + { + fprintf (stderr, "Property change %s received\n", event->type); + } } static void diff --git a/util/magnifier.c b/util/magnifier.c index 201d75b..f3aa4c6 100644 --- a/util/magnifier.c +++ b/util/magnifier.c @@ -171,7 +171,7 @@ int main (int argc, char** argv){ } /* TODO: enable fractional magnifications option? */ if (global_options.target_display) { - snprintf (env_string, (size_t) (ENV_STRING_MAX_SIZE-1), "DISPLAY=%s", global_options.target_display); + g_snprintf (env_string, (size_t) (ENV_STRING_MAX_SIZE-1), "DISPLAY=%s", global_options.target_display); putenv (env_string); } gtk_init (&argc, &argv); -- 2.7.4