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();
13 function global_overlay_keymap_handler(window, ctx, true_event) {
14 var binding = lookup_key_binding(global_overlay_keymap, ctx.combo, ctx.event);
17 if (!binding.fallthrough)
19 true_event.preventDefault();
20 true_event.stopPropagation();
24 call_interactively(ctx, binding.command);
29 define_global_mode("global_overlay_keymap_mode",
31 add_hook("keypress_hook", global_overlay_keymap_handler);
34 remove_hook("keypress_hook", global_overlay_keymap_handler);
37 function define_key_alias (typed_key, generated_key) {
38 var name = "generate-key-event:"+generated_key;
41 "Generate a fake key press event for the key: "+generated_key,
45 I.buffer.focused_element,
48 define_key(global_overlay_keymap, typed_key, name);
49 global_overlay_keymap_mode(true);
51 ignore_function_for_get_caller_source_code_reference("define_key_alias");
54 function define_sticky_modifier (typed_key, modifiers) {
55 var name = "sticky-modifiers:"+modifiers;
56 interactive(name, "Set sticky modifiers: "+modifiers,
58 I.sticky_modifiers = modifiers;
60 define_key(global_overlay_keymap, typed_key, name);
61 global_overlay_keymap_mode(true);
63 ignore_function_for_get_caller_source_code_reference("define_sticky_modifier");