On Sat, Apr 5, 2008 at 10:36 AM, Jeremy Maitin-Shepard
<[EMAIL PROTECTED]> wrote:
> Just to let you know, I just pushed a change that should take care of
>  automatically updating buffer.keymap according to the current input mode
>  when the page mode changes.

Awesome, it works well.  Here's a new version of the patch:

commit e5d331fb4d095a76798a0a0a3fb681ef40ade93c
Author: David Glasser <[EMAIL PROTECTED]>
Date:   Sat Apr 5 00:02:15 2008 -0700

    Beginning of a gmail page mode.

diff --git a/modules/conkeror.js b/modules/conkeror.js
index fd655ac..7bfb414 100644
--- a/modules/conkeror.js
+++ b/modules/conkeror.js
@@ -56,6 +56,7 @@ require("media.js");
 require("page-modes/youtube.js");
 require("page-modes/google-video.js");
 require("page-modes/google-search-results.js");
+require("page-modes/gmail.js");

 //require("scroll-bars.js");

diff --git a/modules/page-modes/gmail.js b/modules/page-modes/gmail.js
new file mode 100644
index 0000000..b174ed8
--- /dev/null
+++ b/modules/page-modes/gmail.js
@@ -0,0 +1,30 @@
+require("content-buffer.js");
+require("bindings/default/content-buffer/normal.js");
+
+var gmail_keymap = new keymap($parent = content_buffer_normal_keymap);
+
+function gmail_label_go(buffer, label)
+{
+    buffer.window.content.location.hash = "#label/" +
encodeURIComponent(label);
+}
+interactive("gmail-label-go",
+            "Go to a GMail label.",
+            function(I) {
+              gmail_label_go(I.buffer, (yield
I.minibuffer.read($prompt = "Go to label: ")));
+            });
+
+define_key(gmail_keymap, "C-c g", "gmail-label-go");
+define_key(gmail_keymap, "j", null, $fallthrough);
+define_key(gmail_keymap, "k", null, $fallthrough);
+define_key(gmail_keymap, "u", null, $fallthrough);
+define_key(gmail_keymap, "n", null, $fallthrough);
+define_key(gmail_keymap, "p", null, $fallthrough);
+define_key(gmail_keymap, "r", null, $fallthrough);
+define_key(gmail_keymap, "C-c r", "reload");
+define_key(gmail_keymap, "a", null, $fallthrough);
+
+define_page_mode("gmail_mode", "GMail", $enable = function (buffer) {
+
buffer.local_variables.content_buffer_normal_keymap = gmail_keymap;
+                 });
+
+auto_mode_list.push([/^https?:\/\/mail\.google\.com\//, gmail_mode]);


-- 
David Glasser | [EMAIL PROTECTED] | http://www.davidglasser.net/
_______________________________________________
Conkeror mailing list
[email protected]
https://www.mozdev.org/mailman/listinfo/conkeror

Reply via email to