--- lib/main.vala 2013-10-10 16:35:58.000000000 +0400 +++ /home/oleg/src/debian/indicator-keyboard-0.0.0+13.10.20131010.1/lib/main.vala 2013-11-30 23:49:24.911178706 +0400 @@ -488,19 +488,23 @@ [DBus (visible = false)] private void handle_active_window_changed (Bamf.View? old_view, Bamf.View? new_view) { + uint old_current = source_settings.get_uint ("current"); if (old_view != null) { - ((!) window_sources)[((!) old_view).path] = source_settings.get_uint ("current"); + ((!) window_sources)[((!) old_view).path] = old_current; } if (new_view != null) { if (!((!) window_sources).has_key (((!) new_view).path)) { 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)[((!) new_view).path]); + uint current = ((!) window_sources)[((!) new_view).path]; + if (current != old_current) { + source_settings.set_uint ("current", current); + } } } }