status/keyboard: When per-window, choose the first IS for new windows
This was libgnomekbd's behavior and seems to be prefered by users. https://bugzilla.gnome.org/show_bug.cgi?id=746037
This commit is contained in:
parent
01b51cd081
commit
4e52ed9df7
@ -475,13 +475,20 @@ const InputSourceManager = new Lang.Class({
|
|||||||
},
|
},
|
||||||
|
|
||||||
_getNewInputSource: function(current) {
|
_getNewInputSource: function(current) {
|
||||||
for (let i in this._inputSources) {
|
let sourceIndexes = Object.keys(this._inputSources);
|
||||||
let is = this._inputSources[i];
|
if (sourceIndexes.length == 0)
|
||||||
if (is.type == current.type &&
|
return null;
|
||||||
is.id == current.id)
|
|
||||||
return is;
|
if (current) {
|
||||||
|
for (let i in this._inputSources) {
|
||||||
|
let is = this._inputSources[i];
|
||||||
|
if (is.type == current.type &&
|
||||||
|
is.id == current.id)
|
||||||
|
return is;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return this._currentSource;
|
|
||||||
|
return this._inputSources[sourceIndexes[0]];
|
||||||
},
|
},
|
||||||
|
|
||||||
_getCurrentWindow: function() {
|
_getCurrentWindow: function() {
|
||||||
@ -496,16 +503,13 @@ const InputSourceManager = new Lang.Class({
|
|||||||
if (!window)
|
if (!window)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if (!window._inputSources) {
|
if (window._inputSources != this._inputSources) {
|
||||||
window._inputSources = this._inputSources;
|
|
||||||
window._currentSource = this._currentSource;
|
|
||||||
} else if (window._inputSources == this._inputSources) {
|
|
||||||
window._currentSource.activate();
|
|
||||||
} else {
|
|
||||||
window._inputSources = this._inputSources;
|
window._inputSources = this._inputSources;
|
||||||
window._currentSource = this._getNewInputSource(window._currentSource);
|
window._currentSource = this._getNewInputSource(window._currentSource);
|
||||||
window._currentSource.activate();
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (window._currentSource)
|
||||||
|
window._currentSource.activate();
|
||||||
},
|
},
|
||||||
|
|
||||||
_sourcesPerWindowChanged: function() {
|
_sourcesPerWindowChanged: function() {
|
||||||
|
Loading…
Reference in New Issue
Block a user