Skip to content
Browse files

MDL-34671 Stop browser receiving escape keydown in modal dialogues

In certain modal dialogues, we listen on the Escape key to close a
dialogue. However, this is still passed to the browser. As a result, if the
browser is in full screen mode and that browser respects the escape key as
a means to exit full screen.

As a result, we need to ensure that we listen for the escape key at keydown
rather than keyup, and additionally prevent the default browser behaviour.

This is a workaround to http://yuilibrary.com/projects/yui3/ticket/2532616
and, should that issue be fixed, it should be removed.
  • Loading branch information...
1 parent 9130843 commit 7efab51a7edbb42886f78bce97d2e7c6ebcde973 @andrewnicols andrewnicols committed
Showing with 4 additions and 3 deletions.
  1. +3 −2 course/yui/toolboxes/toolboxes.js
  2. +1 −1 lib/yui/chooserdialogue/chooserdialogue.js
View
5 course/yui/toolboxes/toolboxes.js
@@ -557,8 +557,9 @@ YUI.add('moodle-course-toolboxes', function(Y) {
// Cancel the edit if we lose focus or the escape key is pressed
thisevent = editor.on('blur', cancel_edittitle);
listenevents.push(thisevent);
- thisevent = Y.one('document').on('keyup', function(e) {
- if (e.keyCode == 27) {
+ thisevent = Y.one('document').on('keydown', function(e) {
+ if (e.keyCode === 27) {
+ e.preventDefault();
cancel_edittitle(e);
}
});
View
2 lib/yui/chooserdialogue/chooserdialogue.js
@@ -143,7 +143,7 @@ YUI.add('moodle-core-chooserdialogue', function(Y) {
this.listenevents.push(thisevent);
// Grab global keyup events and handle them
- thisevent = Y.one('document').on('keyup', this.handle_key_press, this);
+ thisevent = Y.one('document').on('keydown', this.handle_key_press, this);
this.listenevents.push(thisevent);
// Add references to various elements we adjust

0 comments on commit 7efab51

Please sign in to comment.
Something went wrong with that request. Please try again.