Allow global keyboard shortcuts to work in framed editor (#6705)

Co-authored-by: Maurycy Zarzycki <maurycy@evidentlycube.com>
This commit is contained in:
Maurycy Zarzycki 2022-06-11 09:57:08 +02:00 committed by GitHub
parent bb47cc97f5
commit 8e64e21039
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 5 additions and 1 deletions

View File

@ -84,6 +84,9 @@ function FramedEngine(options) {
// Copy the styles from the dummy textarea
this.copyStyles();
// Add event listeners
$tw.utils.addEventListeners(this.iframeDoc, [
{name: "keydown",handlerObject: $tw.keyboardManager,handlerMethod: "handleKeydownEvent", capture: true},
]);
$tw.utils.addEventListeners(this.domNode,[
{name: "click",handlerObject: this,handlerMethod: "handleClickEvent"},
{name: "input",handlerObject: this,handlerMethod: "handleInputEvent"},

View File

@ -198,6 +198,7 @@ Each entry in the events array is an object with these properties:
handlerFunction: optional event handler function
handlerObject: optional event handler object
handlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)
capture: optionally specifies the listener should use capture (defaults to `false`)
*/
exports.addEventListeners = function(domNode,events) {
$tw.utils.each(events,function(eventInfo) {
@ -213,7 +214,7 @@ exports.addEventListeners = function(domNode,events) {
handler = eventInfo.handlerObject;
}
}
domNode.addEventListener(eventInfo.name,handler,false);
domNode.addEventListener(eventInfo.name,handler,!!eventInfo.capture);
});
};