diff options
author | Pierre Ossman <ossman@cendio.se> | 2017-01-26 18:20:19 +0100 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2017-05-04 12:13:47 +0200 |
commit | a784a9cabc4aef667e9ea2ea1f942a3a5f0d0ddd (patch) | |
tree | 05e273326ee2c55c62be07af83cca974f89e2e29 | |
parent | d0703d1bdebe610261bc492e2c23877d359e5eb3 (diff) | |
download | novnc-a784a9cabc4aef667e9ea2ea1f942a3a5f0d0ddd.tar.gz |
Remove QEMU key event handler
The normal event handler provides all the necessary information
now, so it is no longer needed.
-rw-r--r-- | core/input/devices.js | 8 | ||||
-rw-r--r-- | core/input/util.js | 128 | ||||
-rw-r--r-- | core/rfb.js | 1 |
3 files changed, 0 insertions, 137 deletions
diff --git a/core/input/devices.js b/core/input/devices.js index c92c6a3..979756d 100644 --- a/core/input/devices.js +++ b/core/input/devices.js @@ -54,14 +54,6 @@ Keyboard.prototype = { } }, - setQEMUVNCKeyboardHandler: function () { - this._handler = new KeyboardUtil.QEMUKeyEventDecoder(KeyboardUtil.ModifierSync(), - KeyboardUtil.TrackQEMUKeyState( - this._handleRfbEvent.bind(this) - ) - ); - }, - _handleKeyDown: function (e) { if (!this._focused) { return; } diff --git a/core/input/util.js b/core/input/util.js index b8fd83a..7dea0c0 100644 --- a/core/input/util.js +++ b/core/input/util.js @@ -257,134 +257,6 @@ export function getKeysym(evt){ return null; } -export function QEMUKeyEventDecoder (modifierState, next) { - "use strict"; - - function sendAll(evts) { - for (var i = 0; i < evts.length; ++i) { - next(evts[i]); - } - } - - var numPadCodes = ["Numpad0", "Numpad1", "Numpad2", - "Numpad3", "Numpad4", "Numpad5", "Numpad6", - "Numpad7", "Numpad8", "Numpad9", "NumpadDecimal"]; - - var numLockOnKeySyms = { - "Numpad0": 0xffb0, "Numpad1": 0xffb1, "Numpad2": 0xffb2, - "Numpad3": 0xffb3, "Numpad4": 0xffb4, "Numpad5": 0xffb5, - "Numpad6": 0xffb6, "Numpad7": 0xffb7, "Numpad8": 0xffb8, - "Numpad9": 0xffb9, "NumpadDecimal": 0xffac - }; - - var numLockOnKeyCodes = [96, 97, 98, 99, 100, 101, 102, - 103, 104, 105, 108, 110]; - - function isNumPadMultiKey(evt) { - return (numPadCodes.indexOf(evt.code) !== -1); - } - - function getNumPadKeySym(evt) { - if (numLockOnKeyCodes.indexOf(evt.keyCode) !== -1) { - return numLockOnKeySyms[evt.code]; - } - return 0; - } - - function process(evt, type) { - var result = {type: type}; - result.code = getKeycode(evt); - result.keysym = 0; - - if (isNumPadMultiKey(evt)) { - result.keysym = getNumPadKeySym(evt); - } - - var suppress = type !== 'keydown' || !!getKeysym(evt); - - next(result); - return suppress; - } - return { - keydown: function(evt) { - sendAll(modifierState.keydown(evt)); - return process(evt, 'keydown'); - }, - keypress: function(evt) { - return true; - }, - keyup: function(evt) { - sendAll(modifierState.keyup(evt)); - return process(evt, 'keyup'); - }, - syncModifiers: function(evt) { - sendAll(modifierState.syncAny(evt)); - }, - releaseAll: function() { next({type: 'releaseall'}); } - }; -}; - -export function TrackQEMUKeyState (next) { - "use strict"; - var state = []; - - return function (evt) { - var last = state.length !== 0 ? state[state.length-1] : null; - - switch (evt.type) { - case 'keydown': - - if (!last || last.code !== evt.code) { - last = {code: evt.code}; - - if (state.length > 0 && state[state.length-1].code == 'ControlLeft') { - if (evt.code !== 'AltRight') { - next({code: 'ControlLeft', type: 'keydown', keysym: 0}); - } else { - state.pop(); - } - } - state.push(last); - } - if (evt.code !== 'ControlLeft') { - next(evt); - } - break; - - case 'keyup': - if (state.length === 0) { - return; - } - var idx = null; - // do we have a matching key tracked as being down? - for (var i = 0; i !== state.length; ++i) { - if (state[i].code === evt.code) { - idx = i; - break; - } - } - // if we couldn't find a match (it happens), assume it was the last key pressed - if (idx === null) { - if (evt.code === 'ControlLeft') { - return; - } - idx = state.length - 1; - } - - state.splice(idx, 1); - next(evt); - break; - case 'releaseall': - /* jshint shadow: true */ - for (var i = 0; i < state.length; ++i) { - next({code: state[i].code, keysym: 0, type: 'keyup'}); - } - /* jshint shadow: false */ - state = []; - } - }; -}; - // Takes a DOM keyboard event and: // - determines which keysym it represents // - determines a code identifying the key that was pressed (corresponding to the code/keyCode properties on the DOM event) diff --git a/core/rfb.js b/core/rfb.js index 46b3158..c82dd23 100644 --- a/core/rfb.js +++ b/core/rfb.js @@ -2464,7 +2464,6 @@ RFB.encodingHandlers = { var keyboardEvent = document.createEvent("keyboardEvent"); if (keyboardEvent.code !== undefined) { this._qemuExtKeyEventSupported = true; - this._keyboard.setQEMUVNCKeyboardHandler(); } }, |