diff options
author | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2015-09-12 20:12:25 +0200 |
---|---|---|
committer | Pierre-Marie Pédrot <pierre-marie.pedrot@inria.fr> | 2015-09-13 02:46:47 +0200 |
commit | 7df0761305778270fe569c0942e7079a803d57e9 (patch) | |
tree | 5dc0190ad23d46e7171d68b88bc2bfe90a6a19ff /ide/preferences.ml | |
parent | f03aaf12eb7d89fa4caa59873e114c8cd125b950 (diff) | |
parent | 490160d25d3caac1d2ea5beebbbebc959b1b3832 (diff) |
Merge branch 'v8.5'
Diffstat (limited to 'ide/preferences.ml')
-rw-r--r-- | ide/preferences.ml | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/ide/preferences.ml b/ide/preferences.ml index 8520cce0d..765dc7e59 100644 --- a/ide/preferences.ml +++ b/ide/preferences.ml @@ -248,6 +248,17 @@ let automatic_tactics = let cmd_print = new preference ~name:["cmd_print"] ~init:"lpr" ~repr:Repr.(string) +let attach_modifiers (pref : string preference) prefix = + let cb mds = + let mds = str_to_mod_list mds in + let change ~path ~key ~modi ~changed = + if CString.is_sub prefix path 0 then + ignore (GtkData.AccelMap.change_entry ~key ~modi:mds ~replace:true path) + in + GtkData.AccelMap.foreach change + in + pref#connect#changed cb + let modifier_for_navigation = new preference ~name:["modifier_for_navigation"] ~init:"<Control><Alt>" ~repr:Repr.(string) @@ -260,6 +271,11 @@ let modifier_for_tactics = let modifier_for_display = new preference ~name:["modifier_for_display"] ~init:"<Alt><Shift>" ~repr:Repr.(string) +let _ = attach_modifiers modifier_for_navigation "<Actions>/Navigation/" +let _ = attach_modifiers modifier_for_templates "<Actions>/Templates/" +let _ = attach_modifiers modifier_for_tactics "<Actions>/Tactics/" +let _ = attach_modifiers modifier_for_display "<Actions>/View/" + let modifiers_valid = new preference ~name:["modifiers_valid"] ~init:"<Alt><Control><Shift>" ~repr:Repr.(string) |