Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 70d19e5

Browse files
committed
Fix key modifier handling
Fix key modifier handling Remove commented out code Ignore pause/break and caps lock
1 parent d6e1577 commit 70d19e5

File tree

1 file changed

+22
-9
lines changed
  • lib/matplotlib/backends/web_backend

1 file changed

+22
-9
lines changed

lib/matplotlib/backends/web_backend/mpl.js

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -120,7 +120,7 @@ mpl.figure.prototype._init_canvas = function() {
120120
}
121121

122122
canvas_div.keydown('key_press', canvas_keyboard_event);
123-
canvas_div.keydown('key_release', canvas_keyboard_event);
123+
canvas_div.keyup('key_release', canvas_keyboard_event);
124124
this.canvas_div = canvas_div
125125
this._canvas_extra_style(canvas_div)
126126
this.root.append(canvas_div);
@@ -459,20 +459,33 @@ mpl.figure.prototype.mouse_event = function(event, name) {
459459
}
460460

461461
mpl.figure.prototype.key_event = function(event, name) {
462-
/* Don't fire events just when a modifier is changed. Modifiers are
463-
sent along with other keys. */
464-
if (event.keyCode >= 16 && event.keyCode <= 20) {
465-
return;
466-
}
467462

463+
// Ignore pause/break and caps lock
464+
if (event.keyCode === 19 || event.keyCode === 20)
465+
return;
468466
var value = '';
469-
if (event.ctrlKey) {
467+
if (event.ctrlKey && !(event.keyCode == 17)) {
470468
value += "ctrl+";
471469
}
472-
if (event.altKey) {
470+
if (event.altKey && !(event.keyCode == 18)) {
473471
value += "alt+";
474472
}
475-
value += String.fromCharCode(event.keyCode).toLowerCase();
473+
if (event.shiftKey && !(event.keyCode == 16)) {
474+
value += "shift+";
475+
}
476+
477+
if (event.keyCode == 17) {
478+
value += "control";
479+
}
480+
else if (event.keyCode == 18) {
481+
value += "alt";
482+
}
483+
else if (event.keyCode == 16) {
484+
value += "shift";
485+
}
486+
else {
487+
value += String.fromCharCode(event.keyCode).toLowerCase();
488+
}
476489

477490
this.send_message(name, {key: value});
478491
return false;

0 commit comments

Comments
 (0)