From d61bf69c332b18eed546c5f4cdb9775bef140cf8 Mon Sep 17 00:00:00 2001 From: Samuel Mannehed Date: Thu, 31 Oct 2019 16:24:06 +0100 Subject: [PATCH] Keep the virtual keyboard after using extra keys If using the extra keys always gives focus to the screen then an on-screen keyboard would be closed. When using on-screen keyboards we instead want to give focus to our virtual keyboard input element. --- kasmweb/app/ui.js | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/kasmweb/app/ui.js b/kasmweb/app/ui.js index 60c952b..79614cd 100644 --- a/kasmweb/app/ui.js +++ b/kasmweb/app/ui.js @@ -1923,9 +1923,19 @@ const UI = { 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(); + + // Move focus to the screen in order to be able to use the + // keyboard right after these extra keys. + // The exception is when a virtual keyboard is used, because + // if we focus the screen the virtual keyboard would be closed. + // In this case we focus our special virtual keyboard input + // element instead. + if (document.getElementById('noVNC_keyboard_button') + .classList.contains("noVNC_selected")) { + document.getElementById('noVNC_keyboardinput').focus(); + } else { + UI.rfb.focus(); + } // fade out the controlbar to highlight that // the focus has been moved to the screen UI.idleControlbar();