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 __installed = false;
|
||||
|
||||
var __hidden_attr = null;
|
||||
var __visibility_change_attr = null;
|
||||
|
||||
this.init = function() {
|
||||
keyboard.init();
|
||||
mouse.init();
|
||||
}
|
||||
|
||||
this.releaseAll = function() {
|
||||
keyboard.releaseAll();
|
||||
mouse.releaseAll();
|
||||
};
|
||||
|
||||
this.emitShortcut = function(...codes) {
|
||||
console.log(codes);
|
||||
var delay = 0;
|
||||
|
||||
@ -24,13 +24,17 @@ var keyboard = new function() {
|
||||
};
|
||||
|
||||
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) {
|
||||
if (__isActive(el_key)) {
|
||||
keyboard.fireEvent(el_key.id, false);
|
||||
}
|
||||
});
|
||||
__ws = ws;
|
||||
$("hid-keyboard-led").className = (ws ? "led-on" : "led-off");
|
||||
};
|
||||
|
||||
this.fireEvent = function(code, state) {
|
||||
|
||||
@ -12,6 +12,32 @@ var ui = new function() {
|
||||
var el_header = el_window.querySelector(".window-header");
|
||||
__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) {
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user