[go: nahoru, domu]

Skip to content

Commit

Permalink
Move focus to the screen when using extra keys
Browse files Browse the repository at this point in the history
A regression from 2afda54 and friends was that you couldn't use the
extra keys and then directly use the keyboard, you would have to click
in the session first.

This commit restores the correct behavior and also adds a visual queue
to the fact that the screen got the focus by fading the controlbar.
  • Loading branch information
samhed committed Oct 28, 2019
1 parent c568ad4 commit a5aa8e1
Showing 1 changed file with 21 additions and 8 deletions.
29 changes: 21 additions & 8 deletions app/ui.js
Original file line number Diff line number Diff line change
Expand Up @@ -1503,48 +1503,61 @@ const UI = {
},

sendEsc() {
UI.rfb.sendKey(KeyTable.XK_Escape, "Escape");
UI.sendKey(KeyTable.XK_Escape, "Escape");
},

sendTab() {
UI.rfb.sendKey(KeyTable.XK_Tab, "Tab");
UI.sendKey(KeyTable.XK_Tab, "Tab");
},

toggleCtrl() {
const btn = document.getElementById('noVNC_toggle_ctrl_button');
if (btn.classList.contains("noVNC_selected")) {
UI.rfb.sendKey(KeyTable.XK_Control_L, "ControlLeft", false);
UI.sendKey(KeyTable.XK_Control_L, "ControlLeft", false);
btn.classList.remove("noVNC_selected");
} else {
UI.rfb.sendKey(KeyTable.XK_Control_L, "ControlLeft", true);
UI.sendKey(KeyTable.XK_Control_L, "ControlLeft", true);
btn.classList.add("noVNC_selected");
}
},

toggleWindows() {
const btn = document.getElementById('noVNC_toggle_windows_button');
if (btn.classList.contains("noVNC_selected")) {
UI.rfb.sendKey(KeyTable.XK_Super_L, "MetaLeft", false);
UI.sendKey(KeyTable.XK_Super_L, "MetaLeft", false);
btn.classList.remove("noVNC_selected");
} else {
UI.rfb.sendKey(KeyTable.XK_Super_L, "MetaLeft", true);
UI.sendKey(KeyTable.XK_Super_L, "MetaLeft", true);
btn.classList.add("noVNC_selected");
}
},

toggleAlt() {
const btn = document.getElementById('noVNC_toggle_alt_button');
if (btn.classList.contains("noVNC_selected")) {
UI.rfb.sendKey(KeyTable.XK_Alt_L, "AltLeft", false);
UI.sendKey(KeyTable.XK_Alt_L, "AltLeft", false);
btn.classList.remove("noVNC_selected");
} else {
UI.rfb.sendKey(KeyTable.XK_Alt_L, "AltLeft", true);
UI.sendKey(KeyTable.XK_Alt_L, "AltLeft", true);
btn.classList.add("noVNC_selected");
}
},

sendCtrlAltDel() {
UI.rfb.sendCtrlAltDel();
// See below
UI.rfb.focus();
UI.idleControlbar();
},

sendKey(keysym, code, down) {
UI.rfb.sendKey(keysym, code, down);
// move focus to the screen in order to be able to
// use the keyboard right after these extra keys
UI.rfb.focus();
// fade out the controlbar to highlight that
// the focus has been moved to the screen
UI.idleControlbar();
},

/* ------^-------
Expand Down

0 comments on commit a5aa8e1

Please sign in to comment.