aboutsummaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorOleg O Andreev <OlegOAndreev@yandex.ru>2014-02-24 11:41:13 -0500
committerWilliam Hua <william.hua@canonical.com>2014-02-24 11:41:13 -0500
commit465800294ff2999b9d050a2d2d23be923edf74cc (patch)
tree2f8c55e6e758894121441b4e5a005c754a8eda33 /lib
parenta4dcdb1046efb730d770c3515618ab30c3edd622 (diff)
downloadayatana-indicator-keyboard-465800294ff2999b9d050a2d2d23be923edf74cc.tar.gz
ayatana-indicator-keyboard-465800294ff2999b9d050a2d2d23be923edf74cc.tar.bz2
ayatana-indicator-keyboard-465800294ff2999b9d050a2d2d23be923edf74cc.zip
Do not set org.gnome.desktop.input-sources.current when unchanged (LP: #1256559).
Diffstat (limited to 'lib')
-rw-r--r--lib/main.vala12
1 files changed, 9 insertions, 3 deletions
diff --git a/lib/main.vala b/lib/main.vala
index d16022e9..61036fd5 100644
--- a/lib/main.vala
+++ b/lib/main.vala
@@ -513,16 +513,22 @@ public class Indicator.Keyboard.Service : Object {
[DBus (visible = false)]
private void handle_focused_window_changed (uint window_id, string app_id, uint stage) {
- ((!) window_sources)[focused_window_id] = source_settings.get_uint ("current");
+ var old_current = source_settings.get_uint ("current");
+
+ ((!) window_sources)[focused_window_id] = old_current;
if (!(((!) window_sources).has_key (window_id))) {
var default_group = per_window_settings.get_int ("default-group");
- if (default_group >= 0) {
+ if (default_group >= 0 && default_group != old_current) {
source_settings.set_uint ("current", (uint) default_group);
}
} else {
- source_settings.set_uint ("current", ((!) window_sources)[window_id]);
+ var current = ((!) window_sources)[window_id];
+
+ if (current != old_current) {
+ source_settings.set_uint ("current", current);
+ }
}
focused_window_id = window_id;