diff options
Diffstat (limited to 'community/cinnamon/keyboard_applet.patch')
-rw-r--r-- | community/cinnamon/keyboard_applet.patch | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/community/cinnamon/keyboard_applet.patch b/community/cinnamon/keyboard_applet.patch deleted file mode 100644 index 6b3694086..000000000 --- a/community/cinnamon/keyboard_applet.patch +++ /dev/null @@ -1,142 +0,0 @@ -diff --git a/applet.js b/applet.js ---- a/files/usr/share/cinnamon/applets/keyboard@cinnamon.org/applet.js -+++ b/files/usr/share/cinnamon/applets/keyboard@cinnamon.org/applet.js -@@ -1,9 +1,10 @@ - const Applet = imports.ui.applet; --const Gkbd = imports.gi.Gkbd; - const Lang = imports.lang; --const Cinnamon = imports.gi.Cinnamon; -+const Gio = imports.gi.Gio; -+const GLib = imports.gi.GLib; - const St = imports.gi.St; - const Gtk = imports.gi.Gtk; -+const GnomeDesktop = imports.gi.GnomeDesktop; - const Main = imports.ui.main; - const PopupMenu = imports.ui.popupMenu; - const Util = imports.misc.util; -@@ -15,11 +16,12 @@ - LayoutMenuItem.prototype = { - __proto__: PopupMenu.PopupBaseMenuItem.prototype, - -- _init: function(config, id, indicator, long_name) { -+ _init: function(ipsettings, id, index, indicator, long_name) { - PopupMenu.PopupBaseMenuItem.prototype._init.call(this); - -- this._config = config; -+ this._ipsettings = ipsettings; - this._id = id; -+ this._index = index; - this.label = new St.Label({ text: long_name }); - this.indicator = indicator; - this.addActor(this.label); -@@ -28,7 +30,7 @@ - - activate: function(event) { - PopupMenu.PopupBaseMenuItem.prototype.activate.call(this); -- this._config.lock_group(this._id); -+ this._ipsettings.set_value('current', GLib.Variant.new_uint32(this._index)); - } - }; - -@@ -54,18 +56,18 @@ - this._layoutItems = [ ]; - - this._showFlags = global.settings.get_boolean("keyboard-applet-use-flags"); -- this._config = Gkbd.Configuration.get(); -- this._config.connect('changed', Lang.bind(this, this._syncConfig)); -- this._config.connect('group-changed', Lang.bind(this, this._syncGroup)); -+ this._xkbInfo = new GnomeDesktop.XkbInfo(); -+ this._ipsettings = new Gio.Settings({ schema: 'org.gnome.desktop.input-sources' }); -+ this._ipsettings.connect('changed::sources', Lang.bind(this, this._syncConfig)); -+ this._ipsettings.connect('changed::current', Lang.bind(this, this._syncGroup)); - global.settings.connect('changed::keyboard-applet-use-flags', Lang.bind(this, this._reload_settings)); -- this._config.start_listen(); - - this._syncConfig(); - - this.menu.addMenuItem(new PopupMenu.PopupSeparatorMenuItem()); - this.menu.addAction(_("Show Keyboard Layout"), Lang.bind(this, function() { - Main.overview.hide(); -- Util.spawn(['gkbd-keyboard-display', '-g', String(this._config.get_current_group() + 1)]); -+ Util.spawn(['gkbd-keyboard-display', '-l', this._selectedLayout._id]); - })); - this.menu.addAction(_("Show Character Table"), Lang.bind(this, function() { - Main.overview.hide(); -@@ -98,7 +100,6 @@ - }, - - _reload_settings: function() { -- this._showFlags = global.settings.get_boolean("keyboard-applet-use-flags"); - this._syncConfig(); - }, - -@@ -127,8 +128,8 @@ - _syncConfig: function() { - this._showFlags = global.settings.get_boolean("keyboard-applet-use-flags"); - -- let groups = this._config.get_group_names(); -- if (groups.length > 1) { -+ let sources = this._ipsettings.get_value('sources'); -+ if (sources.n_children() > 1) { - this.actor.show(); - } else { - this.menu.close(); -@@ -141,25 +142,29 @@ - for (let i = 0; i < this._labelActors.length; i++) - this._labelActors[i].destroy(); - -- let short_names = this._adjustGroupNames(this._config.get_short_group_names()); -- - this._selectedLayout = null; - this._layoutItems = [ ]; - this._labelActors = [ ]; -- for (let i = 0; i < groups.length; i++) { -- let icon_name = this._config.get_group_name(i); -+ for (let i = 0; i < sources.n_children(); i++) { -+ let [type, id] = sources.get_child_value(i).deep_unpack(); -+ let displayName = id; -+ let shortName = id; -+ let xkbLayout = id; -+ if (type == 'xkb') { -+ [_exists, displayName, shortName, xkbLayout, _xkbVariant] = this._xkbInfo.get_layout_info(id); -+ } // TODO: errorhandling, handle 'ibus' -+ let icon_name = xkbLayout; // FIXME: Really? - let actor; - if (this._showFlags) - actor = new St.Icon({ icon_name: icon_name, icon_type: St.IconType.FULLCOLOR, style_class: 'popup-menu-icon' }); - else -- actor = new St.Label({ text: short_names[i] }); -- let item = new LayoutMenuItem(this._config, i, actor, groups[i]); -- item._short_group_name = short_names[i]; -+ actor = new St.Label({ text: shortName }); -+ let item = new LayoutMenuItem(this._ipsettings, id, i, actor, displayName); - item._icon_name = icon_name; - this._layoutItems.push(item); - this.menu.addMenuItem(item, i); - -- let shortLabel = new St.Label({ text: short_names[i] }); -+ let shortLabel = new St.Label({ text: shortName }); - this._labelActors.push(shortLabel); - } - -@@ -167,17 +172,17 @@ - }, - - _syncGroup: function() { -- let selected = this._config.get_current_group(); -+ let current = this._ipsettings.get_uint('current'); - - if (this._selectedLayout) { - this._selectedLayout.setShowDot(false); - this._selectedLayout = null; - } - -- let item = this._layoutItems[selected]; -+ let item = this._layoutItems[current]; - item.setShowDot(true); - -- let selectedLabel = this._labelActors[selected]; -+ let selectedLabel = this._labelActors[current]; - - if (this._showFlags) { - this.set_applet_icon_name(item._icon_name); |