Re: [g-a-devel] GUI Restrictions on an Accessibility App?



Quiring, Sam wrote:
Greetings,
To date, our at-spi applications do not have GUI interfaces, but we are now trying to add one. I seem to be experiencing some restrictions and am wondering if there are certain rules that need to be followed? Our app runs the SPI event loop in the main thread, so during startup the Gtk+ GUI and its event loop are started in a new thread. The effective end of the main thread looks like this: createListeners();
registerListeners();
SPI_event_main();
SPI_deregisterAll(genericListener);
If execution of the main thread makes it past registerListeners() before the GUI is initialized, then the GUI never comes up, it hangs in the call to show the app's main window: gtk_widget_show(window). If I stop the main thread before registerListeners() and wait until gtk_widget_show(window) returns, then the GUI comes up and mostly works. registerListeners just consists of a series of calls on SPI_registerGlobalEventListener, SPI_registerDeviceEventListener, and SPI_registerAccessibleKeystrokeListener. Does anyone have an explanation for this behavior? What is it in the SPI_register* routines that would cause gtk_widget_show(window) to hang?

Could be a dead lock. gtk_widget_show emits signal to atk-bridge, atk-bridge transfers to at-spi-registryd. And at-spi-registryd notifies your application. Does your application has a mainloop at this time?

Li


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]