Re: [g-a-devel] WARNING **: FIXME: wait for completion unimplemented



Hi David,

Thanks for the suggestion.  I put in a handler for
object:state-changed:defunct.
For the SPI_ROLE_FRAME object that corresponds to the window, the
:defunct event
comes in right after the window:destroy event.

It would be good to know if the designers of AT-SPI had designated a
particular
event as the best indicator that an application has died.

When an application is killed I get a :defunct event for every
Accessible *object
of that application (except one).  For a Firefox window, that is a few
hundred
events.  I did not receive a :defunct event for the application object
itself.
Too bad, I would definitely interpret that event as conlusive that the
application
was dead.

-Sam

-----Original Message-----
From: david bolter [mailto:david bolter gmail com] On Behalf Of David
Bolter
Sent: Wednesday, March 18, 2009 9:57 AM
To: Quiring, Sam
Cc: gnome-accessibility-devel gnome org
Subject: Re: [g-a-devel] WARNING **: FIXME: wait for completion
unimplemented

Hi Sam,

I think you want object:state-changed:defunct. We have used that in GOK
with some success.

cheers,
David

Quiring, Sam wrote:
> Greetings,
>  
> We have an Accessibility *handle to an Application object (role = 
> SPI_ROLE_APPLICATION).  We called Accessible_ref(handle).  At some 
> time while we have this handle, the user kills the application with 
> the mouse.
>  
> We have introduced a routine, isAccessibleDead(Accessible *handle), 
> where we try to determine if the object still exists by examining its 
> state.  During this testing, we get a segfault, most likely from 
> Accessible_getStateSet(handle).  We have exception handlers around 
> this code and if we get a segfault we conclude the object is indeed
dead.
> Our accessibility app continues to execute.
>  
> At a later time, if the user clicks on any buried window on the 
> desktop to bring it to the top, our accessibility app gets the 
> segfault shown in the email below.
>  
> So here's my question:  What is the correct AT-SPI algorithm for 
> determining that an Application object is gone?
>  
> When the user kills the application, our app gets a window:deactivate 
> event and a window:destroy event for the only direct child of 
> Application object, an SPI_ROLE_FRAME object.  My best guess for the 
> algorithm is "if I receive a window:destroy for the frame of an 
> application, mark the application as dead.  Never use the Accessible 
> *handle after that."  Is that the it?
>  
> It is a bug that we are getting a segfault when we call
> Accessible_getStateSet() on a ref'd Accessible *value, right?
>  
> -Sam
>  
>  
> ________________________________
>
> From: gnome-accessibility-devel-bounces gnome org
> [mailto:gnome-accessibility-devel-bounces gnome org] On Behalf Of 
> Quiring, Sam
> Sent: Tuesday, March 17, 2009 4:15 PM
> To: gnome-accessibility-devel gnome org
> Subject: [g-a-devel] WARNING **: FIXME: wait for completion 
> unimplemented
>
>
> Greetings,
>  
> Does anyone know what this message means:
>  
> ** (process:9316): WARNING **: FIXME: wait for completion 
> unimplemented
>  
> It comes out on the console of my Accessibility app near the same time

> as the stack dump shown below.  This stack dump does not contain any 
> code from my accessibility app -- I cause it to happen by switching 
> among windows on my desktop.  Any clues about what is going on here 
> would be greatly appreciated.
>  
> -Sam
>  
> Stack Dump (the top frame was called by the 2nd frame, etc.) TCF 
> 49:24.522: /usr/lib/libcspi.so.0 [0xb790e969] TCF 49:24.522: 
> /usr/lib/libcspi.so.0 [0xb790abe2] TCF 49:24.523: 
> /usr/lib/libcspi.so.0 [0xb790f1b2] TCF 49:24.523:
> /usr/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__POINTER+0x5a)
> [0xb7a300ba]
> TCF 49:24.523: /usr/lib/libgobject-2.0.so.0 [0xb7a22079] TCF 
> 49:24.523: /usr/lib/libgobject-2.0.so.0(g_closure_invoke+0x129)
> [0xb7a23759]
> TCF 49:24.523: /usr/lib/libgobject-2.0.so.0 [0xb7a3811a] TCF 
> 49:24.523: /usr/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x8ef)
> [0xb7a39c1f]
> TCF 49:24.523: /usr/lib/libgobject-2.0.so.0(g_signal_emit+0x29)
> [0xb7a39f69]
> TCF 49:24.523: /usr/lib/libspi.so.0 [0xb794fb2f] TCF 49:24.523:
> /usr/lib/libspi.so.0(_ORBIT_skel_small_Accessibility_EventListener_not
> if
> yEvent+0x1f) [0xb794202f]
> TCF 49:24.523: /usr/lib/libORBit-2.so.0 [0xb738a5c7] TCF 49:24.523: 
> /usr/lib/libORBit-2.so.0(ORBit_OAObject_invoke+0x35)
> [0xb73907b5]
> TCF 49:24.523:
> /usr/lib/libORBit-2.so.0(ORBit_small_invoke_adaptor+0x4d0) 
> [0xb737d910] TCF 49:24.523: /usr/lib/libORBit-2.so.0 [0xb738e424] TCF 
> 49:24.523: /usr/lib/libORBit-2.so.0 [0xb738eaa2] TCF 49:24.523: 
> /usr/lib/libORBit-2.so.0(giop_thread_queue_process+0xad)
> [0xb73763dd]
> TCF 49:24.523: /usr/lib/libORBit-2.so.0 [0xb7376b26]
>
>
>   
> ----------------------------------------------------------------------
> --
>
> _______________________________________________
> Gnome-accessibility-devel mailing list 
> Gnome-accessibility-devel gnome org
> http://mail.gnome.org/mailman/listinfo/gnome-accessibility-devel
>   



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