input_key

This commit is contained in:
rustdesk
2022-02-05 04:28:40 +08:00
parent b348b3fdc8
commit 7d099ae9c9
7 changed files with 25 additions and 664 deletions

View File

@@ -19,14 +19,17 @@
OGVDecoderVideoAV1MTW: 'ogv-decoder-video-av1-mt-wasm.js',
OGVDecoderVideoAV1SIMDMTW: 'ogv-decoder-video-av1-simd-mt-wasm.js',
*/
import { simd } from "wasm-feature-detect";
export function loadVp9(callback) {
export async function loadVp9(callback) {
// Multithreading is used only if `options.threading` is true.
// This requires browser support for the new `SharedArrayBuffer` and `Atomics` APIs,
// currently available in Firefox and Chrome with experimental flags enabled.
// 所有主流浏览器均默认于2018年1月5日禁用SharedArrayBuffer
const isSIMD = await simd();
console.log('isSIMD: ' + isSIMD);
window.OGVLoader.loadClass(
"OGVDecoderVideoVP9SIMDW",
isSIMD ? "OGVDecoderVideoVP9SIMDW" : "OGVDecoderVideoVP9W",
(videoCodecClass) => {
window.videoCodecClass = videoCodecClass;
videoCodecClass({ videoFormat: {} }).then((decoder) => {

View File

@@ -46,7 +46,7 @@ const zCode = "z".charCodeAt(0);
const aCode = "a".charCodeAt(0);
export function mapKey(name: string, isDesktop: Boolean) {
const tmp = KEY_MAP[name];
const tmp = KEY_MAP[name] || name;
if (tmp.length == 1) {
const chr = tmp.charCodeAt(0);
if (!isDesktop && (chr > zCode || chr < aCode))

View File

@@ -487,16 +487,16 @@ export default class Connection {
) {
const key_event = mapKey(name, globals.isDesktop());
if (!key_event) return;
if (alt && name == "VK_MENU") {
if (alt && (name == "Alt" || name == 'RAlt')) {
alt = false;
}
if (ctrl && name == "VK_CONTROL") {
if (ctrl && (name == "Control" || name == 'RControl')) {
ctrl = false;
}
if (shift && name == "VK_SHIFT") {
if (shift && (name == "Shift" || name == 'RShift')) {
shift = false;
}
if (command && name == "Meta") {
if (command && (name == "Meta" || name == 'RWin')) {
command = false;
}
key_event.down = down;

View File

@@ -20,7 +20,7 @@ window.isMobile = () => {
}
export function isDesktop() {
return !isMobile;
return !isMobile();
}
export function msgbox(type, title, text) {
@@ -184,7 +184,7 @@ window.setByName = (name, value) => {
break;
case 'input_key':
value = JSON.parse(value);
curConn.inputKey(value.name, value.down || false, value.press || false, value.alt || false, value.ctrl || false, value.shift || false, value.command || false);
curConn.inputKey(value.name, value.down == 'true', value.press == 'true', value.alt == 'true', value.ctrl == 'true', value.shift == 'true', value.command == 'true');
break;
case 'input_string':
curConn.inputString(value);
@@ -213,7 +213,7 @@ window.setByName = (name, value) => {
case 'wheel':
mask |= 4 << 3;
}
curConn.inputMouse(mask, parseInt(value.x || '0'), parseInt(value.y || '0'), value.alt || false, value.ctrl || false, value.shift || false, value.command || false);
curConn.inputMouse(mask, parseInt(value.x || '0'), parseInt(value.y || '0'), value.alt == 'true', value.ctrl == 'true', value.shift == 'true', value.command == 'true');
break;
case 'option':
value = JSON.parse(value);