Skip to content

Commit 4eda8e9

Browse files
committed
Some fixes
1 parent c7b194b commit 4eda8e9

File tree

5 files changed

+31
-13
lines changed

5 files changed

+31
-13
lines changed

files/usr/share/cinnamon/applets/[email protected]/applet.js

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -227,7 +227,7 @@ class CinnamonKeyboardApplet extends Applet.IconApplet {
227227
}
228228

229229
const menuItem = new LayoutMenuItem(
230-
() => source.activate(),
230+
() => source.activate(true),
231231
actor, source.displayName
232232
);
233233

@@ -308,6 +308,15 @@ class CinnamonKeyboardApplet extends Applet.IconApplet {
308308
// }
309309
}
310310

311+
_setPanelIBusLabel(label) {
312+
let actor = new St.Label({
313+
text: label,
314+
style_class: "applet-label"
315+
});
316+
317+
this._panel_icon_box.set_child(actor);
318+
}
319+
311320
_updatePropertySection(properties) {
312321
// this._propSeparator.hide();
313322
this._propSection.actor.hide();
@@ -336,12 +345,11 @@ class CinnamonKeyboardApplet extends Applet.IconApplet {
336345
text = prop.get_symbol().get_text();
337346
else
338347
text = prop.get_label().get_text();
339-
340348
let currentSource = this._manager.currentSource;
341349
if (currentSource) {
342350
let indicatorLabel = this._layoutItems.get(currentSource);
343351
if (text && text.length > 0 && text.length < 3)
344-
indicatorLabel.label.set_text(text);
352+
this._setPanelIBusLabel(text)
345353
}
346354
}
347355

files/usr/share/cinnamon/cinnamon-settings/bin/AddKeyboardLayout.py

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,7 @@ def make_ibus_display_name(engine):
4343
class AddKeyboardLayoutDialog():
4444
def __init__(self, used_ids):
4545
self.input_source_settings = Gio.Settings(schema_id="org.cinnamon.desktop.input-sources")
46-
self.used_ids = used_ids
47-
self.loaded_ids = set()
46+
self.used_ids = set(used_ids)
4847

4948
builder = Gtk.Builder()
5049
builder.set_translation_domain('cinnamon')
@@ -195,10 +194,10 @@ def _load_layouts(self):
195194
self.add_xkb_row(None, layout)
196195

197196
def add_xkb_row(self, lang_info, layout_id):
198-
if layout_id in (self.used_ids, self.loaded_ids):
197+
if layout_id in self.used_ids:
199198
return
200199

201-
self.loaded_ids.add(layout_id)
200+
self.used_ids.add(layout_id)
202201

203202
got, display_name, short_name, layout, variant = self.xkb_info.get_layout_info(layout_id)
204203
if got:
@@ -209,10 +208,10 @@ def add_ibus_row(self, ibus_info):
209208

210209
if layout_id.startswith("xkb:"):
211210
return
212-
if layout_id in self.loaded_ids:
211+
if layout_id in self.used_ids:
213212
return
214213

215-
self.loaded_ids.add(layout_id)
214+
self.used_ids.add(layout_id)
216215

217216
display_name = make_ibus_display_name(ibus_info)
218217
self.layouts_store.append((layout_id, display_name, "ibus", ibus_info.get_layout(), ibus_info.get_layout_variant()))

files/usr/share/cinnamon/cinnamon-settings/bin/InputSources.py

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,11 @@ def _on_proxy_ready(self, obj, result, data=None):
298298
def _on_proxy_signal(self, proxy, sender_name, signal_name, parameters):
299299
if signal_name == "InputSourcesChanged":
300300
self.refresh_input_source_list()
301+
elif signal_name == "CurrentInputSourceChanged":
302+
new_active = parameters[0]
303+
for source in self._sources:
304+
source.active = new_active == source.id
305+
self.items_changed(0, len(self._sources), len(self._sources))
301306

302307
def _on_cinnamon_state_changed(self, proxy, pspec, data=None):
303308
# If Cinnamon crashes, this will happen, reload our sources using xkb and ibus.
@@ -356,7 +361,7 @@ def refresh_input_source_list(self):
356361
self.items_changed(0, len(old_layouts), len(new_layouts))
357362

358363
def show_add_layout_dialog(self):
359-
used_ids = [source.xkbid for source in self._sources]
364+
used_ids = [source.id for source in self._sources]
360365
add_dialog = AddKeyboardLayout.AddKeyboardLayoutDialog(used_ids)
361366
add_dialog.dialog.show_all()
362367
ret = add_dialog.dialog.run()

js/ui/cinnamonDBus.js

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -142,6 +142,9 @@ const CinnamonIface =
142142
<method name="ActivateInputSourceIndex"> \
143143
<arg type="i" direction="in" name="index"/> \
144144
</method> \
145+
<signal name="CurrentInputSourceChanged"> \
146+
<arg type="s" direction="out" /> \
147+
</signal> \
145148
<signal name="InputSourcesChanged"/> \
146149
</interface> \
147150
</node>';
@@ -570,6 +573,10 @@ CinnamonDBus.prototype = {
570573
is_mgr.activateInputSourceIndex(index);
571574
},
572575

576+
EmitCurrentInputSourceChanged: function(id) {
577+
this._dbusImpl.emit_signal('CurrentInputSourceChanged', GLib.Variant.new('(s)', [id]));
578+
},
579+
573580
EmitInputSourcesChanged: function() {
574581
this._dbusImpl.emit_signal('InputSourcesChanged', null);
575582
},

js/ui/keyboardManager.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -419,7 +419,6 @@ class InputSourceSwitcher extends SwitcherPopup.SwitcherList {
419419

420420
if (this.show_flags) {
421421
const file = Gio.file_new_for_path(getFlagFileName(name));
422-
global.log(file.get_path());
423422
if (file.query_exists(null)) {
424423
const icon = new SubscriptableFlagIcon({
425424
style_class: 'input-source-switcher-flag-icon',
@@ -693,6 +692,7 @@ var InputSourceManager = class {
693692
[oldSource, this._currentSource] = [this._currentSource, newSource];
694693

695694
this.emit('current-source-changed', oldSource);
695+
Main.cinnamonDBusService.EmitCurrentInputSourceChanged(newSource.id);
696696

697697
for (let i = 1; i < this._mruSources.length; ++i) {
698698
if (this._mruSources[i] == newSource) {
@@ -709,7 +709,7 @@ var InputSourceManager = class {
709709

710710
try {
711711
let is = this._inputSources[index];
712-
this.activateInputSource(is, false);
712+
this.activateInputSource(is, true);
713713
} catch (e) {
714714
global.logError(`Could not activate input source index: ${index}`);
715715
}
@@ -942,7 +942,6 @@ var InputSourceManager = class {
942942
return;
943943

944944
source.properties = props;
945-
global.log(source.properties);
946945

947946
if (source == this._currentSource)
948947
this.emit('current-source-changed', null);

0 commit comments

Comments
 (0)