Index: gnopernicus/srcore/srmain.c
===================================================================
RCS file: /cvs/gnome/gnopernicus/srcore/srmain.c,v
retrieving revision 1.142.2.4
diff -u -r1.142.2.4 srmain.c
--- gnopernicus/srcore/srmain.c	5 Oct 2004 13:45:58 -0000	1.142.2.4
+++ gnopernicus/srcore/srmain.c	27 Oct 2004 11:49:12 -0000
@@ -255,10 +255,8 @@
 	if (txt && txt[0])
 	{
 	    SRObjectRoles role;
-	    SRState state;
 	    sro_get_role (obj, &role, SR_INDEX_CONTAINER);
-	    sro_get_state (obj, &state, SR_INDEX_CONTAINER);
-	    if (state & SR_STATE_FOCUSED || strcmp (reason, "present") == 0)
+	    if (srl_is_object_focused (obj) || strcmp (reason, "present") == 0)
 	    {
 		if ( role == SR_ROLE_STATUS_BAR && strcmp (reason , "focus:") == 0)
 		    src_speech_send_chunk (txt, SRC_SPEECH_PRIORITY_SYSTEM, FALSE);
Index: gnopernicus/srlow/libsrlow/SRLow.c
===================================================================
RCS file: /cvs/gnome/gnopernicus/srlow/libsrlow/SRLow.c,v
retrieving revision 1.104.2.2
diff -u -r1.104.2.2 SRLow.c
--- gnopernicus/srlow/libsrlow/SRLow.c	5 Oct 2004 13:45:58 -0000	1.104.2.2
+++ gnopernicus/srlow/libsrlow/SRLow.c	27 Oct 2004 11:49:20 -0000
@@ -2184,3 +2184,11 @@
 
     return sro_get_acc (obj) == srl_watched_acc;
 }
+
+gboolean
+srl_is_object_focused (SRObject *obj)
+{
+    srl_assert (obj);
+
+    return sro_get_acc (obj) == srl_last_focus || sro_get_acc (obj) == srl_last_focus2;
+}
Index: gnopernicus/srlow/libsrlow/SRLow.h
===================================================================
RCS file: /cvs/gnome/gnopernicus/srlow/libsrlow/SRLow.h,v
retrieving revision 1.14.4.1
diff -u -r1.14.4.1 SRLow.h
--- gnopernicus/srlow/libsrlow/SRLow.h	5 Oct 2004 13:45:58 -0000	1.14.4.1
+++ gnopernicus/srlow/libsrlow/SRLow.h	27 Oct 2004 11:49:20 -0000
@@ -63,5 +63,6 @@
 gboolean srl_set_watch_for_object (SRObject *obj);
 void     srl_unwatch_all_objects ();
 gboolean srl_is_object_watched (SRObject *obj);
+gboolean srl_is_object_focused (SRObject *obj);
 
 #endif 	/*_SRLOW_H*/
