gmail-mode: let gmail handle the return key
[conkeror.git] / modules / page-modes / gmail.js
blob7276bf64251aaa14846a8ec54743d3c2a8918b95
1 /**
2  * (C) Copyright 2008 David Glasser
3  * (C) Copyright 2008 Will Farrington
4  * (C) Copyright 2008 Jeremy Maitin-Shepard
5  * (C) Copyright 2009-2010 John J. Foerch
6  *
7  * Use, modification, and distribution are subject to the terms specified in the
8  * COPYING file.
9 **/
11 in_module(null);
13 require("content-buffer.js");
15 define_keymap("gmail_base_keymap");
16 define_key(gmail_base_keymap, "C-c g", "find-url");
17 define_key(gmail_base_keymap, "C-c c", "copy");
18 define_key(gmail_base_keymap, "C-c x", "shell-command-on-file");
19 define_key(gmail_base_keymap, "C-c s", "save");
20 define_key(gmail_base_keymap, "C-c r", "reload");
21 define_key(gmail_base_keymap, "C-c f", "follow");
22 define_key(gmail_base_keymap, "C-c t", "follow-top");
23 define_key(gmail_base_keymap, "C-c b", "bookmark");
24 define_key(gmail_base_keymap, "tab", null, $fallthrough);
27 define_keymap("gmail_keymap", $parent = gmail_base_keymap,
28               $display_name = "gmail");
30 // Jumping
31 define_key(gmail_keymap, "g", null, $fallthrough);
32 define_key(gmail_keymap, "i", null, $fallthrough);
33 define_key(gmail_keymap, "t", null, $fallthrough);
34 define_key(gmail_keymap, "d", null, $fallthrough);
35 define_key(gmail_keymap, "a", null, $fallthrough);
36 define_key(gmail_keymap, "b", null, $fallthrough);
38 // Threadlist
39 define_key(gmail_keymap, "*", null, $fallthrough);
41 // Navigation
42 define_key(gmail_keymap, "u", null, $fallthrough);
43 define_key(gmail_keymap, "j", null, $fallthrough);
44 define_key(gmail_keymap, "k", null, $fallthrough);
45 define_key(gmail_keymap, "o", null, $fallthrough);
46 define_key(gmail_keymap, "n", null, $fallthrough);
47 define_key(gmail_keymap, "p", null, $fallthrough);
49 // Application
50 define_key(gmail_keymap, "c", null, $fallthrough);
51 define_key(gmail_keymap, "C", null, $fallthrough);
52 define_key(gmail_keymap, "/", null, $fallthrough);
53 define_key(gmail_keymap, "q", null, $fallthrough);
54 define_key(gmail_keymap, "?", null, $fallthrough);
56 // Actions
57 define_key(gmail_keymap, "s", null, $fallthrough);
58 define_key(gmail_keymap, "e", null, $fallthrough);
59 define_key(gmail_keymap, "x", null, $fallthrough);
60 define_key(gmail_keymap, "y", null, $fallthrough);
61 define_key(gmail_keymap, "!", null, $fallthrough);
62 define_key(gmail_keymap, "m", null, $fallthrough);
63 define_key(gmail_keymap, "#", null, $fallthrough);
64 define_key(gmail_keymap, "r", null, $fallthrough);
65 define_key(gmail_keymap, "f", null, $fallthrough);
66 define_key(gmail_keymap, "N", null, $fallthrough);
67 define_key(gmail_keymap, ".", null, $fallthrough);
68 define_key(gmail_keymap, "I", null, $fallthrough);
69 define_key(gmail_keymap, "U", null, $fallthrough);
70 define_key(gmail_keymap, "]", null, $fallthrough);
71 define_key(gmail_keymap, "[", null, $fallthrough);
72 define_key(gmail_keymap, "l", null, $fallthrough);
73 define_key(gmail_keymap, "return", null, $fallthrough);
76 var gmail_modality = {
77     normal: gmail_keymap
80 function gmail_focus_primary_frame (buffer) {
81     var frames = buffer.top_frame.frames;
82     if (frames.length >= 4)
83         buffer.top_frame.frames[3].focus();
86 define_page_mode("gmail_mode",
87                  $display_name = "GMail",
88                  $enable = function (buffer) {
89                      add_hook.call(buffer, "buffer_dom_content_loaded_hook",
90                                    gmail_focus_primary_frame);
91                      add_hook.call(buffer, "unfocus_hook", gmail_focus_primary_frame);
92                      buffer.content_modalities.push(gmail_modality);
93                  },
94                  $disable = function (buffer) {
95                      remove_hook.call(buffer, "buffer_dom_content_loaded_hook",
96                                       gmail_focus_primary_frame);
97                      remove_hook.call(buffer, "unfocus_hook", gmail_focus_primary_frame);
98                      var i = buffer.content_modalities.indexOf(gmail_modality);
99                      if (i > -1)
100                          buffer.content_modalities.splice(i, 1);
101                  });
103 var gmail_re = build_url_regex($domain = "mail.google",
104                                $path = new RegExp('(?!support)'));
105 auto_mode_list.push([gmail_re, gmail_mode]);
107 provide("gmail");