В Втр, 20/01/2009 в 12:55 -0800, Quiring, Sam пишет: > 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? Well, it's hard to quess. Since your app is small you could probably create a small sample to reproduce the problem, it will be easier to track your mistake then. The thing I personally wonder of is - where is SPI_init?
Attachment:
signature.asc
Description: =?koi8-r?Q?=FC=D4=C1?= =?koi8-r?Q?_=DE=C1=D3=D4=D8?= =?koi8-r?Q?_=D3=CF=CF=C2=DD=C5=CE=C9=D1?= =?koi8-r?Q?_=D0=CF=C4=D0=C9=D3=C1=CE=C1?= =?koi8-r?Q?_=C3=C9=C6=D2=CF=D7=CF=CA?= =?koi8-r?Q?_=D0=CF=C4=D0=C9=D3=D8=C0?=