static SPIBoolean report_ordinary_key_event (const AccessibleKeystroke *stroke, void *user_data);
static void get_environment_vars (void);
-static int _festival_init ();
+static int _festival_init (void);
static void _festival_say (const char *text, const char *voice, SPIBoolean shutup);
static void _festival_write (const char *buff, int fd);
SPI_registerGlobalEventListener (text_listener, "object:text-changed");
SPI_registerGlobalEventListener (button_listener, "Gtk:GtkWidget:button-press-event");
SPI_registerGlobalEventListener (window_listener, "window:minimize");
+ SPI_registerGlobalEventListener (window_listener, "window:activate");
n_desktops = SPI_getDesktopCount ();
for (i=0; i<n_desktops; ++i)
{
application = Accessible_getChildAtIndex (desktop, j);
s = Accessible_getName (application);
- fprintf (stderr, "app %d name: %s\n", j, s);
+ fprintf (stderr, "app %d name: %s\n", j, s ? s : "(nil)");
#ifdef PRINT_TREE
print_accessible_tree (application, "*");
#endif
name = Accessible_getName (accessible);
role_name = Accessible_getRoleName (accessible);
fprintf (stdout, "%sAccessible [%s] \"%s\"; parent [%s] %s.\n",
- prefix, role_name, name, parent_role, parent_name);
+ prefix, role_name, name ? name : "(nil)",
+ parent_role ? parent_role : "(nil)",
+ parent_name ? parent_name : "(nil)");
SPI_freeString (name);
SPI_freeString (role_name);
SPI_freeString (parent_name);
report_window_event (const AccessibleEvent *event, void *user_data)
{
fprintf (stderr, "%s event received\n", event->type);
+ if (!strcmp (event->type, "window:activate"))
+ {
+ print_accessible_tree (event->source, "window");
+ }
}
void
long start, end;
char *word_text = AccessibleText_getTextAtOffset (text, (long) event->detail1, SPI_TEXT_BOUNDARY_WORD_START, &start, &end);
char *sentence_text = AccessibleText_getTextAtOffset (text, (long) event->detail1, SPI_TEXT_BOUNDARY_SENTENCE_START, &start, &end);
- fprintf (stderr, "text changed: word %s; sentence %s at %d",
+ fprintf (stderr, "text changed: word %s; sentence %s at %ld",
(word_text ? word_text : ""),
(sentence_text ? sentence_text : ""),
event->detail1);
}
static void
-simple_at_exit ()
+simple_at_exit (void)
{
SPI_deregisterGlobalEventListenerAll (focus_listener);
AccessibleEventListener_unref (focus_listener);
}
static int
-_festival_init ()
+_festival_init (void)
{
int fd;
struct sockaddr_in name;