mirror of
https://github.com/mofeng-git/One-KVM.git
synced 2025-12-13 01:30:31 +08:00
release keys when window loosing focus
This commit is contained in:
parent
b7d933b6ce
commit
d2da0829b9
@ -2,11 +2,19 @@ var hid = new function() {
|
|||||||
var __install_timer = null;
|
var __install_timer = null;
|
||||||
var __installed = false;
|
var __installed = false;
|
||||||
|
|
||||||
|
var __hidden_attr = null;
|
||||||
|
var __visibility_change_attr = null;
|
||||||
|
|
||||||
this.init = function() {
|
this.init = function() {
|
||||||
keyboard.init();
|
keyboard.init();
|
||||||
mouse.init();
|
mouse.init();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
this.releaseAll = function() {
|
||||||
|
keyboard.releaseAll();
|
||||||
|
mouse.releaseAll();
|
||||||
|
};
|
||||||
|
|
||||||
this.emitShortcut = function(...codes) {
|
this.emitShortcut = function(...codes) {
|
||||||
console.log(codes);
|
console.log(codes);
|
||||||
var delay = 0;
|
var delay = 0;
|
||||||
|
|||||||
@ -24,13 +24,17 @@ var keyboard = new function() {
|
|||||||
};
|
};
|
||||||
|
|
||||||
this.setSocket = function(ws) {
|
this.setSocket = function(ws) {
|
||||||
|
keyboard.releaseAll();
|
||||||
|
__ws = ws;
|
||||||
|
$("hid-keyboard-led").className = (ws ? "led-on" : "led-off");
|
||||||
|
};
|
||||||
|
|
||||||
|
this.releaseAll = function(ws) {
|
||||||
__keys.concat(__modifiers).forEach(function(el_key) {
|
__keys.concat(__modifiers).forEach(function(el_key) {
|
||||||
if (__isActive(el_key)) {
|
if (__isActive(el_key)) {
|
||||||
keyboard.fireEvent(el_key.id, false);
|
keyboard.fireEvent(el_key.id, false);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
__ws = ws;
|
|
||||||
$("hid-keyboard-led").className = (ws ? "led-on" : "led-off");
|
|
||||||
};
|
};
|
||||||
|
|
||||||
this.fireEvent = function(code, state) {
|
this.fireEvent = function(code, state) {
|
||||||
|
|||||||
@ -12,6 +12,32 @@ var ui = new function() {
|
|||||||
var el_header = el_window.querySelector(".window-header");
|
var el_header = el_window.querySelector(".window-header");
|
||||||
__makeWindowMovable(el_header, el_window);
|
__makeWindowMovable(el_header, el_window);
|
||||||
});
|
});
|
||||||
|
|
||||||
|
if (typeof document.hidden !== "undefined") {
|
||||||
|
__hidden_attr = "hidden";
|
||||||
|
__visibility_change_attr = "visibilitychange";
|
||||||
|
} else if (typeof document.webkitHidden !== "undefined") {
|
||||||
|
__hidden_attr = "webkitHidden";
|
||||||
|
__visibility_change_attr = "webkitvisibilitychange";
|
||||||
|
} else if (typeof document.mozHidden !== "undefined") {
|
||||||
|
__hidden_attr = "mozHidden";
|
||||||
|
__visibility_change_attr = "mozvisibilitychange";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (__visibility_change_attr) {
|
||||||
|
document.addEventListener(
|
||||||
|
__visibility_change_attr,
|
||||||
|
function() {
|
||||||
|
if (document[__hidden_attr]) {
|
||||||
|
hid.releaseAll();
|
||||||
|
}
|
||||||
|
},
|
||||||
|
false,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
window.onpagehide = hid.releaseAll;
|
||||||
|
window.onblur = hid.releaseAll;
|
||||||
};
|
};
|
||||||
|
|
||||||
var __toggleMenu = function(el_a) {
|
var __toggleMenu = function(el_a) {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user