summaryrefslogtreecommitdiff
path: root/libcaribou/xadapter.vala
diff options
context:
space:
mode:
Diffstat (limited to 'libcaribou/xadapter.vala')
-rw-r--r--libcaribou/xadapter.vala6
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];