diff --git a/systemvm/agent/noVNC/app/images/shift.png b/systemvm/agent/noVNC/app/images/shift.png new file mode 100644 index 00000000000..b79d6973c8b Binary files /dev/null and b/systemvm/agent/noVNC/app/images/shift.png differ diff --git a/systemvm/agent/noVNC/app/ui.js b/systemvm/agent/noVNC/app/ui.js index 9158c33f317..1c6a00799c3 100644 --- a/systemvm/agent/noVNC/app/ui.js +++ b/systemvm/agent/noVNC/app/ui.js @@ -282,6 +282,8 @@ const UI = { .addEventListener('click', UI.toggleExtraKeys); document.getElementById("noVNC_toggle_ctrl_button") .addEventListener('click', UI.toggleCtrl); + document.getElementById("noVNC_toggle_shift_button") + .addEventListener('click', UI.toggleShift); document.getElementById("noVNC_toggle_windows_button") .addEventListener('click', UI.toggleWindows); document.getElementById("noVNC_toggle_alt_button") @@ -1551,6 +1553,17 @@ const UI = { } }, + toggleShift() { + const btn = document.getElementById('noVNC_toggle_shift_button'); + if (btn.classList.contains("noVNC_selected")) { + UI.sendKey(KeyTable.XK_Shift_L, "ShiftLeft", false); + btn.classList.remove("noVNC_selected"); + } else { + UI.sendKey(KeyTable.XK_Shift_L, "ShiftLeft", true); + btn.classList.add("noVNC_selected"); + } + }, + toggleWindows() { const btn = document.getElementById('noVNC_toggle_windows_button'); if (btn.classList.contains("noVNC_selected")) { diff --git a/systemvm/agent/noVNC/vnc.html b/systemvm/agent/noVNC/vnc.html index 04c00291abb..6f1b7998fe4 100644 --- a/systemvm/agent/noVNC/vnc.html +++ b/systemvm/agent/noVNC/vnc.html @@ -107,6 +107,9 @@ +