whitespace
[conkeror.git] / modules / global-overlay-keymap.js
blob3d9cf5a7f55c54054feaec928d6c87fe15a3f942
1 /**
2  * (C) Copyright 2008 Jeremy Maitin-Shepard
3  * (C) Copyright 2008 John J. Foerch
4  *
5  * Use, modification, and distribution are subject to the terms specified in the
6  * COPYING file.
7 **/
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);
16     if (!binding)
17         return false;
18     if (!binding.fallthrough) {
19         true_event.preventDefault();
20         true_event.stopPropagation();
21     }
22     I.key_sequence.pop();
24     if (binding.command)
25         call_interactively(I, binding.command);
27     return true;
31 define_global_mode("global_overlay_keymap_mode",
32                    function () {
33                        add_hook("keypress_hook", global_overlay_keymap_handler);
34                    },
35                    function () {
36                        remove_hook("keypress_hook", global_overlay_keymap_handler);
37                    });
40 function define_key_alias (typed_key, generated_key) {
41     var name = "generate-key-event:"+generated_key;
42     interactive(name,
43         "Generate a fake key press event for the key: "+generated_key,
44         function (I) {
45             send_key_as_event(I.window,
46                               I.buffer.focused_element,
47                               generated_key);
48         });
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,
58                 function (I) {
59                     I.sticky_modifiers = modifiers;
60                 });
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");