[gnome-shell] Fix crash when using the magnifier



commit 76c4b0a9604d1c2406076864ada30e532068afa2
Author: Joaquim Rocha <jrocha endlessm com>
Date:   Mon Jul 17 12:55:20 2017 +0200

    Fix crash when using the magnifier
    
    The first time that the session is started, it can happen that the
    AT SPI hasn't been correctly initialized, and this results in a crash
    when attempting to register the caret or focus listeners.
    
    In order to avoid this, these changes check the result of initializing
    the AT SPI, to allow further attempts when it has failed.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=785047

 js/ui/focusCaretTracker.js |   13 +++++--------
 1 files changed, 5 insertions(+), 8 deletions(-)
---
diff --git a/js/ui/focusCaretTracker.js b/js/ui/focusCaretTracker.js
index 265fcce..01660e0 100644
--- a/js/ui/focusCaretTracker.js
+++ b/js/ui/focusCaretTracker.js
@@ -47,30 +47,27 @@ const FocusCaretTracker = new Lang.Class({
     },
 
     _initAtspi: function() {
-        if (!this._atspiInited) {
-            Atspi.init();
+        if (!this._atspiInited && Atspi.init() == 0) {
             Atspi.set_timeout(250, 250);
             this._atspiInited = true;
         }
+
+       return this._atspiInited;
     },
 
     registerFocusListener: function() {
-        if (this._focusListenerRegistered)
+        if (!this._initAtspi() || this._focusListenerRegistered)
             return;
 
-        this._initAtspi();
-
         this._atspiListener.register(STATECHANGED + ':focused');
         this._atspiListener.register(STATECHANGED + ':selected');
         this._focusListenerRegistered = true;
     },
 
     registerCaretListener: function() {
-        if (this._caretListenerRegistered)
+        if (!this._initAtspi() || this._caretListenerRegistered)
             return;
 
-        this._initAtspi();
-
         this._atspiListener.register(CARETMOVED);
         this._caretListenerRegistered = true;
     },


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]