Re: [g-a-devel] WARNING **: FIXME: wait for completion unimplemented
- From: "Quiring, Sam" <Sam Quiring windriver com>
- To: "David Bolter" <david bolter utoronto ca>
- Cc: gnome-accessibility-devel gnome org
- Subject: Re: [g-a-devel] WARNING **: FIXME: wait for completion unimplemented
- Date: Wed, 18 Mar 2009 11:00:02 -0700
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]