[g-a-devel]Re: gail frame bug ...



> Subject: gail frame bug ...
> To: Bill Haneman <bill haneman sun com>, "Padraig O'Briain" 
<Padraig Obriain sun com>
> Cc: accessibility mailing list <gnome-accessibility-devel gnome org>
> Content-Transfer-Encoding: 7bit
> Mime-Version: 1.0
> 
> Hi Bill,
> 
> 	At-poke is being somewhat crippled by some oddness in gailframe ( I
> think ); at least, the following code:
> 
> static void
> validate_up_down_linkage (Accessible *accessible)
> {
>         Accessible *child;
>         Accessible *parent;
> 
>         child = Accessible_getChildAtIndex (accessible, 0);
>         if (!child)
>                 return;
> 
>         parent = Accessible_getParent (child);
> 
>         g_assert (parent == accessible);
> }
> 
> 	when run on a 'Frame' fails - ie. the tree is broken. at-poke can
> tolerate applications not having parents that are the desktop - although
> that too is broken; but it can't tolerate this sort of breakage.
> 
> 	WHy do we have both a Frame and a Window role ? what is the difference
> and when do we use one instead of the other ? there are several
> AtkObject methods a Window overrides that a Frame does not - why is that
> ? particularly get_parent and get_index_in_parent.
> 

The role ATK_ROLE_FRAME is for a toplevel window with a title bar, border, menu 
bar etc. and the role ATK_ROLE_WINDOW is for a  toplevel window with no title or 
border

Cureently I do not think that we have anything which we assign a role of 
ATK_ROLE_WINDOW.

GailWindow overrides get_parent and get_index_in_parent as we represent the 
windows as children of a root object.

> 	Why does GailFrame not inherit from GailWindow or VV. ? surely this
> code is shared ? Why does GailWindow use 'gpointer parent_class' instead
> of using the most commonly chained to base class type, such as
> AtkObjectClass to avoid unneccessary casts ?
> 

GailFrame is the AtkObject for GtkFrame; therre is no relationship between a 
GtkFrame and a GtkWindow so there is no relationship between a GailFrame and a 
GailWindow. Yes, there is confusion between the type name and the role names.

I had used 'gpointer parent_class' for consistency. You are right; a number of 
casts could be removed if it were defined a AtkObjectClass.

Padraig

> 	Regards,
> 
> 		Michael.
> 
> -- 
>  mmeeks gnu org  <><, Pseudo Engineer, itinerant idiot
> 




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