GNOME Bugzilla – Bug 674210
Event flood on the endSessionDialog is causing some problems on Orca users
Last modified: 2012-06-05 14:01:44 UTC
STEPS: 1. Use Orca to interact with GNOME-Shell 2. Open the end session dialog (user menu, Alt to show power-off, press) EXPECTED OUTCOME: Being able to interact with that dialog as smooth as with the rest of GNOME Shell ACTUAL OUTCOME: Orca requires some seconds for each action, and in some cases stop to work. NOTES: Joanmarie Diggs and me started to look this after this comment on orca-list: http://mail.gnome.org/archives/orca-list/2012-April/msg00199.html In my computer I don't notice anything, but it seems that it depends on how fast is your machine. This only happens if there are no inhibitors, so we have that countdown. The problem is that without inhibitors, there is an tweener idle that executes _updateContent, and this updates the icon always. This leads to a new clutter texture created and added each time it is executed. Not sure if Note that this is not only affecting when accessibility is on. Using top, when the endSessionDialog is open CPU consumption starts to increase.
Created attachment 212158 [details] [review] First tentative solution This patch solves the problem. It assumes that the iconName will be the same during all the life on the end session dialog, something that I can't ensure right now.
Review of attachment 212158 [details] [review]: I don't like this. There are valid reasons to update the icon ('user-changed'), but more importantly it feels stupid to update *all* the content when updating the countdown (which happens to be the case that is causing problems). So I think a better approach is to factor out an _updateDescription() method and call that in _startTimer() instead of _updateContent().
Created attachment 215635 [details] [review] Factoring updateDescription out of updateContent Updated patch after review on comment 2
Review of attachment 215635 [details] [review]: Code looks good. I'll push the patch with a slightly modified commit message, so we'll have it in 3.5.2 - thanks for the patch!