[gnome-shell/gnome-3-8] status/keyboard: Switch input source on special modifiers accelerator
- From: Rui Matos <rtcm src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell/gnome-3-8] status/keyboard: Switch input source on special modifiers accelerator
- Date: Fri, 24 May 2013 22:18:45 +0000 (UTC)
commit d45ab6f15e8bb7d3242be0a4a244c5f379a33880
Author: Rui Matos <tiagomatos gmail com>
Date: Fri Mar 29 02:35:32 2013 +0100
status/keyboard: Switch input source on special modifiers accelerator
This simply mimics the X server's layout switching behavior by
advancing to the next input source and wrapping around.
https://bugzilla.gnome.org/show_bug.cgi?id=697008
js/ui/status/keyboard.js | 24 ++++++++++++++++++++++++
1 files changed, 24 insertions(+), 0 deletions(-)
---
diff --git a/js/ui/status/keyboard.js b/js/ui/status/keyboard.js
index fbf56c0..1062f47 100644
--- a/js/ui/status/keyboard.js
+++ b/js/ui/status/keyboard.js
@@ -390,6 +390,8 @@ const InputSourceIndicator = new Lang.Class({
});
this._keyboardManager.g_default_timeout = MAX_INPUT_SOURCE_ACTIVATION_TIME;
+ global.display.connect('modifiers-accelerator-activated', Lang.bind(this, this._modifiersSwitcher));
+
this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem());
this._showLayoutItem = this.menu.addAction(_("Show Keyboard Layout"), Lang.bind(this,
this._showLayout));
@@ -423,6 +425,28 @@ const InputSourceIndicator = new Lang.Class({
this._inputSourcesChanged();
},
+ _modifiersSwitcher: function() {
+ let sourceIndexes = Object.keys(this._inputSources);
+ if (sourceIndexes.length == 0) {
+ releaseKeyboard();
+ return true;
+ }
+
+ let is = this._currentSource;
+ if (!is)
+ is = this._inputSources[sourceIndexes[0]];
+
+ let nextIndex = is.index + 1;
+ if (nextIndex > sourceIndexes[sourceIndexes.length - 1])
+ nextIndex = 0;
+
+ while (!(is = this._inputSources[nextIndex]))
+ nextIndex += 1;
+
+ is.activate();
+ return true;
+ },
+
_switchInputSource: function(display, screen, window, binding) {
if (this._mruSources.length < 2)
return;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]