GNOME Bugzilla – Bug 724305
Two small fixes to the magnifier
Last modified: 2014-02-13 18:45:10 UTC
Before the discussion gets political like last time, I want to highlight that this is purely a performance optimization - and a good one: atspi is quite chatty, and we handle events even if the zoomregion is not enabled, so we end up making sync dbus calls for which we ignore the result. There are no regressions for a11y-using and non-a11y-using users.
Created attachment 269034 [details] [review] Magnifier: demote exceptions reading focus/caret position It's possible that the DBus call goes in timeout (which is bad, but unavoidable, given that atspi is synchronous) or fails because the component has been removed (race condition). Those errors are not dependent on gnome-shell, but on faulty applications (mostly). If they happen, log a debug message and continue.
Created attachment 269035 [details] [review] Magnifier: don't listen for focus/tracker events if the magnifier is not active In addition to checking the current settings, check also if the zoom region is active before registering the event listener. This way, we avoid DBus traffic for events we're not interested in. Also, make FocusCaretTracker resilient to multiple register/deregister calls (which can now happen).
Created attachment 269037 [details] [review] Magnifier: use the system noise texture for the dead area The design says that the noise texture is the implicit bottom layer, and so it's appropriate to use it togheter with the default color to cover the dead area outside the screen which becomes visibile when scrolling.
Created attachment 269038 [details] [review] Magnifier: clip the UI group clone to the allocation Without clipping, we show parts of the message tray and workspace thumbnails that are normally clipped by the screen.
Review of attachment 269034 [details] [review]: OK.
Review of attachment 269035 [details] [review]: Looks good, comment is a bit odd though. ::: js/ui/focusCaretTracker.js @@ +54,3 @@ + + // Ignore the return value, we get an exception if they fail + // And they should never Should never what? fail?
Review of attachment 269037 [details] [review]: Makes sense.
Review of attachment 269038 [details] [review]: OK.
Attachment 269034 [details] pushed as 6882273 - Magnifier: demote exceptions reading focus/caret position Attachment 269035 [details] pushed as 3a92aa7 - Magnifier: don't listen for focus/tracker events if the magnifier is not active Attachment 269037 [details] pushed as f8f4d0f - Magnifier: use the system noise texture for the dead area Attachment 269038 [details] pushed as 793c6c2 - Magnifier: clip the UI group clone to the allocation