diff options
Diffstat (limited to 'libcaribou/xadapter.vala')
-rw-r--r-- | libcaribou/xadapter.vala | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/libcaribou/xadapter.vala b/libcaribou/xadapter.vala index 49aeb68..dbc34f9 100644 --- a/libcaribou/xadapter.vala +++ b/libcaribou/xadapter.vala @@ -7,6 +7,7 @@ namespace Caribou { /* Signals */ public signal void modifiers_changed (uint modifiers); public signal void group_changed (uint gid, string group, string variant); + public signal void config_changed (); /* Private properties */ static XAdapter instance; @@ -47,6 +48,7 @@ namespace Caribou { xkl_state = this.xkl_engine.get_current_state (); this.group = (uchar) xkl_state.group; xkl_engine.X_state_changed.connect_after (xkl_state_changed); + xkl_engine.X_config_changed.connect_after (xkl_config_changed); Xkb.get_state (this.xdisplay, Xkb.UseCoreKbd, out xkb_state); this.modifiers = xkb_state.mods; @@ -137,6 +139,10 @@ namespace Caribou { group_changed (this.group, group_name, variant_name); } + private void xkl_config_changed () { + config_changed (); + } + private uchar keysym_to_modifier (uint keyval) { for (int i = xkbdesc.min_key_code; i <= xkbdesc.max_key_code; i++) { unowned Xkb.SymMap symmap = xkbdesc.map.key_sym_map[i]; |