2 * (C) Copyright 2008 Jeremy Maitin-Shepard
3 * (C) Copyright 2008 John J. Foerch
5 * Use, modification, and distribution are subject to the terms specified in the
9 require("keyboard.js");
11 var global_overlay_keymap = new keymap();
14 function global_overlay_keymap_handler (window, I, true_event) {
15 var binding = lookup_key_binding(global_overlay_keymap, I.combo, I.event);
18 if (!binding.fallthrough) {
19 true_event.preventDefault();
20 true_event.stopPropagation();
25 call_interactively(I, binding.command);
31 define_global_mode("global_overlay_keymap_mode",
33 add_hook("keypress_hook", global_overlay_keymap_handler);
36 remove_hook("keypress_hook", global_overlay_keymap_handler);
40 function define_key_alias (typed_key, generated_key) {
41 var name = "generate-key-event:"+generated_key;
43 "Generate a fake key press event for the key: "+generated_key,
45 send_key_as_event(I.window,
46 I.buffer.focused_element,
49 define_key(global_overlay_keymap, typed_key, name);
50 global_overlay_keymap_mode(true);
52 ignore_function_for_get_caller_source_code_reference("define_key_alias");
55 function define_sticky_modifier (typed_key, modifiers) {
56 var name = "sticky-modifiers:"+modifiers;
57 interactive(name, "Set sticky modifiers: "+modifiers,
59 I.sticky_modifiers = modifiers;
61 define_key(global_overlay_keymap, typed_key, name);
62 global_overlay_keymap_mode(true);
64 ignore_function_for_get_caller_source_code_reference("define_sticky_modifier");