From 865ed44f03b2858c6b1e820131759f1701a1162a Mon Sep 17 00:00:00 2001 From: Ruben Daniels Date: Wed, 18 Apr 2012 14:59:06 +0200 Subject: [PATCH] * Hacked ace key handler element support --- lib/ace/editor.js | 4 ++-- lib/ace/keyboard/textinput.js | 6 ++++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/lib/ace/editor.js b/lib/ace/editor.js index d7a5966e..f515dc93 100644 --- a/lib/ace/editor.js +++ b/lib/ace/editor.js @@ -58,12 +58,12 @@ var EventEmitter = require("./lib/event_emitter").EventEmitter; var CommandManager = require("./commands/command_manager").CommandManager; var defaultCommands = require("./commands/default_commands").commands; -var Editor = function(renderer, session) { +var Editor = function(renderer, session, listenElement) { var container = renderer.getContainerElement(); this.container = container; this.renderer = renderer; - this.textInput = new TextInput(renderer.getTextAreaContainer(), this); + this.textInput = new TextInput(renderer.getTextAreaContainer(), this, listenElement); this.keyBinding = new KeyBinding(this); // TODO detect touch event support diff --git a/lib/ace/keyboard/textinput.js b/lib/ace/keyboard/textinput.js index bb917f5b..cc08a3e7 100644 --- a/lib/ace/keyboard/textinput.js +++ b/lib/ace/keyboard/textinput.js @@ -44,7 +44,7 @@ var event = require("../lib/event"); var useragent = require("../lib/useragent"); var dom = require("../lib/dom"); -var TextInput = function(parentNode, host) { +var TextInput = function(parentNode, host, listenElement) { var text = dom.createElement("textarea"); if (useragent.isTouchPad) @@ -154,7 +154,9 @@ var TextInput = function(parentNode, host) { }, 0); }; - event.addCommandKeyListener(text, host.onCommandKey.bind(host)); + if (listenElement != false) + event.addCommandKeyListener(listenElement || text, host.onCommandKey.bind(host)); + if (useragent.isOldIE) { var keytable = { 13:1, 27:1 }; event.addListener(text, "keyup", function (e) {