]> git.proxmox.com Git - mirror_novnc.git/commitdiff
Simplify keyboard event API
authorPierre Ossman <ossman@cendio.se>
Thu, 26 Jan 2017 17:09:40 +0000 (18:09 +0100)
committerPierre Ossman <ossman@cendio.se>
Thu, 4 May 2017 10:13:47 +0000 (12:13 +0200)
No need for an object for three static fields.

core/input/devices.js
core/rfb.js
tests/input.html
tests/test.rfb.js

index c68966b31c176559d3fa55a59d70da0257200f3a..c92c6a340b0fb257d8ee5df45bdd6fe5cce5d97a 100644 (file)
@@ -47,10 +47,10 @@ Keyboard.prototype = {
     // private methods
 
     _handleRfbEvent: function (e) {
-        if (this._onKeyPress) {
-            Log.Debug("onKeyPress " + (e.type == 'keydown' ? "down" : "up") +
+        if (this._onKeyEvent) {
+            Log.Debug("onKeyEvent " + (e.type == 'keydown' ? "down" : "up") +
                       ", keysym: " + e.keysym);
-            this._onKeyPress(e);
+            this._onKeyEvent(e.keysym, e.code, e.type == 'keydown');
         }
     },
 
@@ -138,7 +138,7 @@ make_properties(Keyboard, [
     ['target',     'wo', 'dom'],  // DOM element that captures keyboard input
     ['focused',    'rw', 'bool'], // Capture and send key events
 
-    ['onKeyPress', 'rw', 'func'] // Handler for key press/release
+    ['onKeyEvent', 'rw', 'func'] // Handler for key press/release
 ]);
 
 const Mouse = function (defaults) {
index 7f55123cce1b461ee65daef8cdae4620310cdb53..46b3158ebd6b3ad6e1ecf8f842ba59ff246db13a 100644 (file)
@@ -200,7 +200,7 @@ export default function RFB(defaults) {
     }
 
     this._keyboard = new Keyboard({target: this._focusContainer,
-                                   onKeyPress: this._handleKeyPress.bind(this)});
+                                   onKeyEvent: this._handleKeyEvent.bind(this)});
 
     this._mouse = new Mouse({target: this._target,
                              onMouseButton: this._handleMouseButton.bind(this),
@@ -664,9 +664,8 @@ RFB.prototype = {
         }
     },
 
-    _handleKeyPress: function (keyevent) {
-        var down = (keyevent.type == 'keydown');
-        this.sendKey(keyevent.keysym, keyevent.code, down);
+    _handleKeyEvent: function (keysym, code, down) {
+        this.sendKey(keysym, code, down);
     },
 
     _handleMouseButton: function (x, y, down, bmask) {
index cd31f7edfc5bc6493192a924092280e70526586f..aee9e769e929e8f173d227cab8f23b5f086dd2cc 100644 (file)
@@ -62,9 +62,9 @@
             //console.log(msg);
         }
 
-        function rfbKeyPress(keysym, down) {
+        function rfbKeyEvent(keysym, code, down) {
             var d = down ? "down" : " up ";
-            var msg = "RFB keypress " + d + " keysym: " + keysym;
+            var msg = "RFB key event " + d + " keysym: " + keysym + " code: " + code;
             message(msg);
         }
         function rawKey(e) {
         window.onload = function() {
             canvas = new Display({'target' : document.getElementById('canvas')});
             keyboard = new Keyboard({'target': document,
-                                    'onKeyPress': rfbKeyPress});
+                                    'onKeyEvent': rfbKeyEvent});
             document.addEventListener('keypress', rawKey);
             document.addEventListener('keydown', rawKey);
             document.addEventListener('keyup', rawKey);
index 70504a5fd47aa4a3ae6901a7e56cb23b0ef7dba7..4f5267f999d25e2321039729df04877f065cddae 100644 (file)
@@ -2026,17 +2026,15 @@ describe('Remote Frame Buffer Protocol Client', function() {
 
             it('should send a key message on a key press', function () {
                 var keyevent = {};
-                keyevent.type = 'keydown';
-                keyevent.keysym = 1234;
-                client._keyboard._onKeyPress(keyevent);
+                client._keyboard._onKeyEvent(0x41, 'KeyA', true);
                 var key_msg = {_sQ: new Uint8Array(8), _sQlen: 0, flush: function () {}};
-                RFB.messages.keyEvent(key_msg, 1234, 1);
+                RFB.messages.keyEvent(key_msg, 0x41, 1);
                 expect(client._sock).to.have.sent(key_msg._sQ);
             });
 
             it('should not send messages in view-only mode', function () {
                 client._view_only = true;
-                client._keyboard._onKeyPress(1234, 1);
+                client._keyboard._onKeyEvent('a', 'KeyA', true);
                 expect(client._sock.flush).to.not.have.been.called;
             });
         });