? gnopernicus/brlmon/braille_fonts/fonts.dir
Index: gnopernicus/srlow/libsrlow/SRLow.c
===================================================================
RCS file: /cvs/gnome/gnopernicus/srlow/libsrlow/SRLow.c,v
retrieving revision 1.78
diff -u -r1.78 SRLow.c
--- gnopernicus/srlow/libsrlow/SRLow.c	25 Feb 2004 14:41:15 -0000	1.78
+++ gnopernicus/srlow/libsrlow/SRLow.c	2 Mar 2004 12:49:32 -0000
@@ -1114,6 +1114,34 @@
     return rv;
 }
 
+static gboolean
+srle_acc_is_child_of_html (SRLEvent *event)
+{
+    Accessible *parent;
+    gboolean rv = FALSE;
+
+    srl_assert (event);
+
+    parent = event->acc_ev->source;
+    Accessible_ref (parent);
+    
+    while (parent)
+    {
+	Accessible *tmp = parent;
+	parent = Accessible_getParent (parent);
+	Accessible_unref (tmp);
+	if (Accessible_getRole (parent) == SPI_ROLE_HTML_CONTAINER)
+	{
+	    rv = TRUE;
+	    break;
+	}
+    }
+    if (parent)
+	Accessible_unref (parent);
+
+    return rv;
+}
+
 
 static gboolean
 srle_change_type (SRLEvent *event)
@@ -1140,6 +1168,9 @@
 	if (!srle_is_for_focused_acc (event) &&
 	    srl_acc_has_toolkit (srle_get_acc (event), SRL_TOOLKIT_MOZILLA))
 	    event->type = SRL_EVENT_FOCUS;
+	if (!srle_is_for_focused_acc (event) &&
+	    srle_acc_is_child_of_html (event))
+	    event->type = SRL_EVENT_FOCUS;
     }
     else if (srle_has_type (event, SRL_EVENT_NAME_CHANGED))
     {
@@ -1406,7 +1437,11 @@
 	srl_is_tooltip_event (event))
 	rv = TRUE;
     else if (srle_has_type (event, SRL_EVENT_FOCUS))
+    {
 	rv = srle_acc_has_state (event, SPI_STATE_FOCUSED);
+	if (!rv)
+	    rv = srle_acc_is_child_of_html (event);
+    }
     else if (srle_has_type (event, SRL_EVENT_FOCUS1))
 	rv = TRUE;
     else if (srle_is_for_focused_acc (event) ||
Index: gnopernicus/srlow/libsrlow/SRObject.c
===================================================================
RCS file: /cvs/gnome/gnopernicus/srlow/libsrlow/SRObject.c,v
retrieving revision 1.93
diff -u -r1.93 SRObject.c
--- gnopernicus/srlow/libsrlow/SRObject.c	23 Feb 2004 09:27:07 -0000	1.93
+++ gnopernicus/srlow/libsrlow/SRObject.c	2 Mar 2004 12:49:49 -0000
@@ -4141,8 +4141,9 @@
     if (val)
 	*val = NULL;
     
-    srl_return_val_if_fail (text_attr && attr && val, FALSE);
-    
+    if (!(text_attr && attr && val))
+	return FALSE;
+
     tmp = strstr (text_attr, attr);
     if (tmp && tmp[strlen (attr)] == ':')
     {
