After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 138391 - Layer 0 'goto status bar/goto toolbar' broken
Layer 0 'goto status bar/goto toolbar' broken
Status: VERIFIED FIXED
Product: gnopernicus
Classification: Deprecated
Component: speech
unspecified
Other Linux
: Normal major
: ---
Assigned To: remus draica
remus draica
AP1
: 141431 (view as bug list)
Depends on:
Blocks:
 
 
Reported: 2004-03-29 10:11 UTC by david.hawthorne
Modified: 2004-12-22 21:47 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
proposed patch (2.42 KB, patch)
2004-05-03 08:01 UTC, Dana Ormenisan
none Details | Review
new proposed patch (2.43 KB, patch)
2004-05-03 13:49 UTC, Dana Ormenisan
committed Details | Review

Description david.hawthorne 2004-03-29 10:11:44 UTC
using gnopernicus from CVS HEAD 29 Mar

-launch gnopernicus
-launch nautilus
-'KP 0, KP 0' to change to layer 0
-'KP 3' to 'goto status bar'
-'KP 1' to 'goto toolbar'

.gnopernicus does not output information on these objects. The output received
is that of a window switch: 

'switched window, file-browser, <currently selected object>'
Comment 1 remus draica 2004-03-29 11:16:11 UTC
For me this bug has exactly same behaviour like bug 134003.
Comment 2 bill.haneman 2004-03-29 13:05:47 UTC
David: please indicated the applications in which this bug is present, i.e. does
it happen for all apps, or only some apps/situations?  Thanks.
Comment 3 david.hawthorne 2004-03-29 14:43:44 UTC
This happens in gnome-terminal, gedit and nautilus. It seems to be all the
time,everywhere.
Comment 4 Dana Ormenisan 2004-04-15 12:50:35 UTC
I reproduced this bug in gedit and nautilus but I am not so sure this is exactly
the same behaviour like bug 134003.

In this situation the layer can be changed. If I press key '0' from numpad I
don't see the unwanted focus event (like in 134003). So after 'KP 0, KP 0' I
managed to switch to layer 0.

Also, goto toolbar/goto status bar actions are not actually broken (even if
gnopernicus does not output information on these objects). To check this, I
applied the patch proposed by Remus on bug 122713, comment #19 (patch to log all
outputs sent to speech) and I run gnopernicus with GNOPERNICUS_LOG set to at-spi:
After 'KP 1' the toolbar description is sent to  speech. But at this point two
unwanted events occure: a 'window:activate' event followed by a 'focus:' event
for the currently selected object. (Some behaviour for 'KP3')

Beacause of this two events the output is that of a window switch:
   'switched window, file-browser, <currently selected object>'
and the status bar/toolbar description is not outputed.
  



Comment 5 remus draica 2004-04-19 08:39:53 UTC
Changing the layer and executing a commnad from a layer is same thing from
at-spi point of view, the difference is only internal in gnopenicus (how a key
press is interpeted).

Dana's obsevations about unwanted events ("window:activate" and "focus" after a
press of a numpad key) are sustaining my oppinion that this bug is a duplicate
of 134003.

Closing bug as dupicate of 134003.


*** This bug has been marked as a duplicate of 134003 ***
Comment 6 Dana Ormenisan 2004-04-30 06:28:14 UTC
*** Bug 141431 has been marked as a duplicate of this bug. ***
Comment 7 bill.haneman 2004-04-30 13:56:41 UTC
we need a test program again, since the one in 134003 doesn't apply here (that
problem was confirmed fixed).
Comment 8 bill.haneman 2004-04-30 14:05:00 UTC
severity is not 'critical', marking 'major'.  "Major" means basically useless,
whereas "critical" means data loss, etc.
Comment 9 padraig.obriain 2004-04-30 14:14:16 UTC
While using gedit with gnopernicus and pressing KP0 KP0 and KP3 I see:

<SRSOUT priority="0" preempt="true"><TEXT voice="system">layer 0</TEXT></SRSOUT>
<SRSOUT priority="0" preempt="true"><TEXT voice="role">Status bar</TEXT><TEXT
voice="name">  Ln 1, Col 1</TEXT><TEXT voice="name">  INS</TEXT></SRSOUT>
<SRSOUT priority="2" preempt="true"><TEXT voice="system">switch to
window</TEXT><TEXT voice="name">Untitled 1 - gedit</TEXT></SRSOUT>
<SRSOUT priority="0" preempt="true"><TEXT voice="role">Multi Line
Text</TEXT></SRSOUT>

I will try to figure out what is going on.
Comment 10 remus draica 2004-04-30 15:22:39 UTC
The problem here is that gnopernicus is spending a lot of time in a keyboard
callback. The solution is to report a keyboard event on a timer.
Comment 11 padraig.obriain 2004-04-30 15:41:16 UTC
I got switching to statusbar to work by increasing the timeout in
at-spi-registryd to 3 seconds.

Remus,

Can you show me what work gnopernicus does when switching to statusbar. Perhaps
we can optimize what is being done either in gnopernicus or in gail.
Comment 12 Dana Ormenisan 2004-05-03 07:57:49 UTC
Padraig, I don't believe this problem can be solved in gail because all calls
are made in the callback.

As Remus said, the problem here is that gnopernicus spend a lot of time in a
keyboard callback. If the keyboard event is reported on a timer, the unwanted
event doesn't occur.

If you apply the following patch, the layer's commands are correctly executed.
Comment 13 Dana Ormenisan 2004-05-03 08:01:08 UTC
Created attachment 27321 [details] [review]
proposed patch
Comment 14 Dana Ormenisan 2004-05-03 13:49:45 UTC
Created attachment 27331 [details] [review]
new proposed patch
Comment 15 remus draica 2004-05-04 07:16:53 UTC
Comment on attachment 27331 [details] [review]
new proposed patch


Patch commited to CVS head.
Comment 16 korn 2004-05-06 02:05:40 UTC
We aren't quite completely fixed yet.  Try flat review of the Gnopernicus
Startup mode dialog.  Doing this a whole bunch (NumPad 2 repeatedly to the
bottom of the window, then NumPad 8 repeatedly to the top) will still cause
Gnopernicus to drop out of flat review in response to a window switch event (it
appears).
Comment 17 bill.haneman 2004-05-06 10:47:46 UTC
Peter: if you are talking about something that appears intermittently, under
stress, then at some point it will be WONTFIX.  There may well be no way to 100%
reliably fix this without ruining performance/responsiveness.

That said, one possibility is that the problem is caused by gnopernicus failing
to  return from the key notification in a timely fashion when it's busy doing
something "expensive".  So in the cases you mention above, we need to determine
exactly what gnopernicus' stack looks like when it receives the key
notifications, and also ensure that it doesn't go long periods without servicing
the event listener.  This latter (checking the event listener) will happen any
time is makes an AT-SPI call on which it must wait; however the fact that the
listener is in an idle handler means that there are no guarantees about the
timeliness of responses to key event notifications.  A "tardy" acknowledgement
of a key event will result in one of these window switch events.

There is no way in glib/gtk+ to guarantee a maximum time between "idle",
"timeout", or "timer" handlers, by the way.  And even if gtk+ tried to provide
this, it's impossible to guarantee given the nature of the Linux scheduler.
Comment 18 korn 2004-05-06 15:04:01 UTC
I wouldn't be surprised if Gnopernicus doesn't return very quickly here; the
event handling changes will hopefully address that.  Further, a switch to XEvIE
should likewise fix this bug.  Therefore, after an audit of Gnopernicus to make
sure it is returning as quickly as possible, I'm happy to close whatever remains
of this bug.