[gnome-shell] keyboard: add an interactive argument to input source activation



commit 5c0eba7d3be5997d973c3f0a06f2ecd4aa3e5db5
Author: Cosimo Cecchi <cosimo endlessm com>
Date:   Wed May 25 11:54:33 2016 -0700

    keyboard: add an interactive argument to input source activation
    
    This is useful to differentiate between a change due to user interaction
    or automatic loading.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=766826

 js/ui/status/keyboard.js |   19 +++++++++++--------
 1 files changed, 11 insertions(+), 8 deletions(-)
---
diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
index 8f45b0d..1020994 100644
--- a/js/ui/status/keyboard.js
+++ b/js/ui/status/keyboard.js
@@ -61,8 +61,8 @@ const InputSource = new Lang.Class({
         this.emit('changed');
     },
 
-    activate: function() {
-        this.emit('activate');
+    activate: function(interactive) {
+        this.emit('activate', !!interactive);
     },
 
     _getXkbId: function() {
@@ -109,7 +109,7 @@ const InputSourcePopup = new Lang.Class({
     _finish : function() {
         this.parent();
 
-        this._items[this._selectedIndex].activate();
+        this._items[this._selectedIndex].activate(true);
     },
 });
 
@@ -376,7 +376,7 @@ const InputSourceManager = new Lang.Class({
         while (!(is = this._inputSources[nextIndex]))
             nextIndex += 1;
 
-        is.activate();
+        is.activate(true);
         return true;
     },
 
@@ -420,7 +420,7 @@ const InputSourceManager = new Lang.Class({
         this._changePerWindowSource();
     },
 
-    _activateInputSource: function(is) {
+    _activateInputSource: function(is, interactive) {
         KeyboardManager.holdKeyboard();
         this._keyboardManager.apply(is.xkbId);
 
@@ -541,7 +541,7 @@ const InputSourceManager = new Lang.Class({
         this._updateMruSources();
 
         if (this._mruSources.length > 0)
-            this._mruSources[0].activate();
+            this._mruSources[0].activate(false);
 
         // All ibus engines are preloaded here to reduce the launching time
         // when users switch the input sources.
@@ -650,7 +650,7 @@ const InputSourceManager = new Lang.Class({
         }
 
         if (window._currentSource)
-            window._currentSource.activate();
+            window._currentSource.activate(false);
     },
 
     _sourcesPerWindowChanged: function() {
@@ -771,7 +771,10 @@ const InputSourceIndicator = new Lang.Class({
             let is = this._inputSourceManager.inputSources[i];
 
             let menuItem = new LayoutMenuItem(is.displayName, is.shortName);
-            menuItem.connect('activate', Lang.bind(is, is.activate));
+            menuItem.connect('activate', function() {
+                is.activate(true);
+            });
+
             let indicatorLabel = new St.Label({ text: is.shortName,
                                                 visible: false });
 


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