VulpesOS/gaia/shared/js/smart-screen/init_gesture.js
OverSu b38dea0597 Publish Vulpes Preview 15 sources for desktop, Android and Tundra
Share Gaia assets and adapters, keep private profiles and development documents local, and update both public READMEs.
2026-09-30 23:13:03 +02:00

54 lines
1.7 KiB
JavaScript
Executable file

/* global GestureDetector, KeyEvent */
'use strict';
(function(exports) {
function initGesture() {
function fireKeyEvent(keyCode, key) {
var eventObj = document.createEvent('Events');
eventObj.initEvent('keydown', true, true);
eventObj.key = key;
eventObj.keyCode = keyCode;
eventObj.which = keyCode;
document.activeElement.dispatchEvent(eventObj);
eventObj = document.createEvent('Events');
eventObj.initEvent('keypress', true, true);
eventObj.key = key;
eventObj.keyCode = keyCode;
eventObj.which = keyCode;
document.activeElement.dispatchEvent(eventObj);
eventObj = document.createEvent('Events');
eventObj.initEvent('keyup', true, true);
eventObj.key = key;
eventObj.keyCode = keyCode;
eventObj.which = keyCode;
document.activeElement.dispatchEvent(eventObj);
}
new GestureDetector(document.body).startDetecting();
document.addEventListener('swipe', function(evt) {
var direction = evt.detail.direction;
var keyDefine = {
'up': [KeyEvent.DOM_VK_UP, 'Up'],
'right': [KeyEvent.DOM_VK_RIGHT, 'Right'],
'down': [KeyEvent.DOM_VK_DOWN, 'Down'],
'left': [KeyEvent.DOM_VK_LEFT, 'Left']
};
fireKeyEvent(keyDefine[direction][0], keyDefine[direction][1]);
});
document.addEventListener('dbltap', function(evt) {
fireKeyEvent(KeyEvent.DOM_VK_RETURN, 'Enter');
});
document.addEventListener('transform', function(evt) {
fireKeyEvent(KeyEvent.DOM_VK_ESCAPE, 'Esc');
});
}
/* exports.initFakeAppEvent = initFakeAppEvent; */
exports.initGesture = initGesture;
})(window);
window.initGesture();