81 lines
2.9 KiB
Diff
81 lines
2.9 KiB
Diff
From f81887772ac0e5adc4fac1c3a1839bbd8c87ff13 Mon Sep 17 00:00:00 2001
|
|
From: Cosimo Cecchi <cosimo@endlessm.com>
|
|
Date: Wed, 25 May 2016 11:28:57 -0700
|
|
Subject: [PATCH 2/4] keyboard: split out a function to udpate the MRU list
|
|
|
|
We're going to add saving of the MRU list in the function in a later
|
|
commit.
|
|
|
|
https://bugzilla.gnome.org/show_bug.cgi?id=766826
|
|
---
|
|
js/ui/status/keyboard.js | 46 +++++++++++++++++++++++++---------------------
|
|
1 file changed, 25 insertions(+), 21 deletions(-)
|
|
|
|
diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
|
|
index 895b73c..8f45b0d 100644
|
|
--- a/js/ui/status/keyboard.js
|
|
+++ b/js/ui/status/keyboard.js
|
|
@@ -440,6 +440,30 @@ const InputSourceManager = new Lang.Class({
|
|
this._currentInputSourceChanged(is);
|
|
},
|
|
|
|
+ _updateMruSources: function() {
|
|
+ let sourcesList = [];
|
|
+ for (let i in this._inputSources)
|
|
+ sourcesList.push(this._inputSources[i]);
|
|
+
|
|
+ this._keyboardManager.setUserLayouts(sourcesList.map(function(x) { return x.xkbId; }));
|
|
+
|
|
+ if (!this._disableIBus && this._mruSourcesBackup) {
|
|
+ this._mruSources = this._mruSourcesBackup;
|
|
+ this._mruSourcesBackup = null;
|
|
+ }
|
|
+
|
|
+ let mruSources = [];
|
|
+ for (let i = 0; i < this._mruSources.length; i++) {
|
|
+ for (let j = 0; j < sourcesList.length; j++)
|
|
+ if (this._mruSources[i].type == sourcesList[j].type &&
|
|
+ this._mruSources[i].id == sourcesList[j].id) {
|
|
+ mruSources = mruSources.concat(sourcesList.splice(j, 1));
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ this._mruSources = mruSources.concat(sourcesList);
|
|
+ },
|
|
+
|
|
_inputSourcesChanged: function() {
|
|
let sources = this._settings.inputSources;
|
|
let nSources = sources.length;
|
|
@@ -514,27 +538,7 @@ const InputSourceManager = new Lang.Class({
|
|
|
|
this.emit('sources-changed');
|
|
|
|
- let sourcesList = [];
|
|
- for (let i in this._inputSources)
|
|
- sourcesList.push(this._inputSources[i]);
|
|
-
|
|
- this._keyboardManager.setUserLayouts(sourcesList.map(function(x) { return x.xkbId; }));
|
|
-
|
|
- if (!this._disableIBus && this._mruSourcesBackup) {
|
|
- this._mruSources = this._mruSourcesBackup;
|
|
- this._mruSourcesBackup = null;
|
|
- }
|
|
-
|
|
- let mruSources = [];
|
|
- for (let i = 0; i < this._mruSources.length; i++) {
|
|
- for (let j = 0; j < sourcesList.length; j++)
|
|
- if (this._mruSources[i].type == sourcesList[j].type &&
|
|
- this._mruSources[i].id == sourcesList[j].id) {
|
|
- mruSources = mruSources.concat(sourcesList.splice(j, 1));
|
|
- break;
|
|
- }
|
|
- }
|
|
- this._mruSources = mruSources.concat(sourcesList);
|
|
+ this._updateMruSources();
|
|
|
|
if (this._mruSources.length > 0)
|
|
this._mruSources[0].activate();
|
|
--
|
|
2.7.4
|
|
|