File: key-kill.js

package info (click to toggle)
conkeror 1.0.3%2Bgit170123-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 1,988 kB
  • sloc: ansic: 280; sh: 255; xml: 173; makefile: 69
file content (41 lines) | stat: -rw-r--r-- 1,286 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
 * (C) Copyright 2013 John J Foerch
 *
 * Use, modification, and distribution are subject to the terms specified in the
 * COPYING file.
**/

define_variable("key_kill_input_fields", false,
    "When true, key-kill-mode will operate in input fields and textareas.");

{ let mozilla_version_below_25 = version_compare(get_mozilla_version(), "25.0") < 0;
  var key_kill_event_kill = function key_kill_event_kill (event) {
      var elem = event.target;
      if (!key_kill_input_fields &&
          (elem instanceof Ci.nsIDOMHTMLInputElement ||
           elem instanceof Ci.nsIDOMHTMLTextAreaElement))
      {
          return;
      }
      if (mozilla_version_below_25) {
          event.preventDefault();
      }
      event.stopPropagation();
  };
}

define_page_mode("key-kill-mode",
    [],
    function enable (buffer) {
        buffer.browser.addEventListener("keyup", key_kill_event_kill, true);
        buffer.browser.addEventListener("keydown", key_kill_event_kill, true);
    },
    function disable (buffer) {
        buffer.browser.removeEventListener("keyup", key_kill_event_kill, true);
        buffer.browser.removeEventListener("keydown", key_kill_event_kill, true);
    },
    $display_name = "Key-kill");

page_mode_activate(key_kill_mode);

provide("key-kill");