rendered paste bodyvoid report_window_event (const AccessibleEvent *event, void *user_data)
{
if (event)
{
AccessibleEvent_ref (event);
g_print ("%d\n", Accessible_getRole (event->source));
AccessibleEvent_unref (event);
}
}
gpointer ldtp_thread_func (gpointer data)
{
SPI_event_main ();
return NULL;
}
PyMODINIT_FUNC initldtp (void)
{
int init_error;
PyObject *ldtp_module;
gchar *env_sleep = NULL;
gchar *locale_lang = NULL;
PyEval_InitThreads();
init_error = SPI_init ();
if (init_error)
{
g_warning ("Error: SPI Init\n");
return;
}
//gstate = PyGILState_Ensure();
// Register local print function
g_set_print_handler (ldtp_print);
ldtp_module = Py_InitModule ("ldtp", ldtp_methods);
ldtp_error = PyErr_NewException ("ldtp.error", NULL, NULL);
Py_INCREF (ldtp_error);
PyModule_AddObject (ldtp_module, "error", ldtp_error);
Py_AtExit (ldtp_exit);
env_sleep = getenv ("WAIT_TIMEOUT");
if (env_sleep != NULL)
{
default_sleep = atoi (env_sleep);
if (default_sleep == 0)
default_sleep = 2;
}
ldtp_debug = getenv ("LDTP_DEBUG");
locale_lang = getenv ("LANG");
if (locale_lang && g_utf8_collate (locale_lang, "en_US.UTF-8") != 0)
{
g_print ("Locale languages: %s\n", locale_lang);
locale_set = TRUE;
setlocale (LC_ALL, "");
}
/*
* Register event listener for windows
*/
window_listener = SPI_createAccessibleEventListener (
NULL, NULL);
/*
* Listen for new popup dialogs
*/
if (window_listener)
SPI_registerGlobalEventListener (window_listener,
"window:activate");
AccessibleEventListener_addCallback (window_listener, report_window_event, NULL);
ldtp_thread = g_thread_create (ldtp_thread_func, NULL, TRUE, NULL);
return;
}