summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2017-01-26 18:20:19 +0100
committerPierre Ossman <ossman@cendio.se>2017-05-04 12:13:47 +0200
commita784a9cabc4aef667e9ea2ea1f942a3a5f0d0ddd (patch)
tree05e273326ee2c55c62be07af83cca974f89e2e29
parentd0703d1bdebe610261bc492e2c23877d359e5eb3 (diff)
downloadnovnc-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.js8
-rw-r--r--core/input/util.js128
-rw-r--r--core/rfb.js1
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();
}
},