]> git.proxmox.com Git - mirror_novnc.git/commitdiff
Auto-close the toolbar on connect after a delay
authorSamuel Mannehed <samuel@cendio.se>
Wed, 31 Aug 2016 09:57:38 +0000 (11:57 +0200)
committerPierre Ossman <ossman@cendio.se>
Fri, 23 Sep 2016 12:39:21 +0000 (14:39 +0200)
app/ui.js

index cdf20a96907316b7bf6ec0160381985eb6871432..0ccffadc6e75463e9df1bf9ddb6d06345fd67fc7 100644 (file)
--- a/app/ui.js
+++ b/app/ui.js
@@ -41,7 +41,8 @@ var UI;
         resizeTimeout: null,
         statusTimeout: null,
         hideKeyboardTimeout: null,
-        controlbarTimeout: null,
+        idleControlbarTimeout: null,
+        closeControlbarTimeout: null,
 
         controlbarGrabbed: false,
         controlbarDrag: false,
@@ -202,6 +203,11 @@ var UI;
             document.getElementById("noVNC_control_bar")
                 .addEventListener('keypress', UI.activateControlbar);
 
+            document.getElementById("noVNC_control_bar")
+                .addEventListener('mousedown', UI.keepControlbar);
+            document.getElementById("noVNC_control_bar")
+                .addEventListener('keypress', UI.keepControlbar);
+
             document.getElementById("noVNC_view_drag_button")
                 .addEventListener('click', UI.toggleViewDrag);
             document.getElementById("noVNC_send_ctrl_alt_del_button")
@@ -245,6 +251,11 @@ var UI;
             document.getElementById("noVNC_control_bar")
                 .addEventListener('input', UI.activateControlbar);
 
+            document.getElementById("noVNC_control_bar")
+                .addEventListener('touchstart', UI.keepControlbar);
+            document.getElementById("noVNC_control_bar")
+                .addEventListener('input', UI.keepControlbar);
+
             document.getElementById("noVNC_control_bar_handle")
                 .addEventListener('touchstart', UI.controlbarHandleMouseDown);
             document.getElementById("noVNC_control_bar_handle")
@@ -405,6 +416,9 @@ var UI;
                 document.documentElement.classList.add("noVNC_connected");
                 UI.updateViewClip();
                 UI.setMouseButton(1);
+
+                // Hide the controlbar after 2 seconds
+                UI.closeControlbarTimeout = setTimeout(UI.closeControlbar, 2000);
             } else {
                 document.documentElement.classList.remove("noVNC_connected");
                 UI.updateXvpButton(0);
@@ -480,13 +494,13 @@ var UI;
             document.getElementById('noVNC_status').classList.remove("noVNC_open");
         },
 
-        activateControlbar: function() {
-            clearTimeout(UI.controlbarTimeout);
+        activateControlbar: function(event) {
+            clearTimeout(UI.idleControlbarTimeout);
             // We manipulate the anchor instead of the actual control
             // bar in order to avoid creating new a stacking group
             document.getElementById('noVNC_control_bar_anchor')
                 .classList.remove("noVNC_idle");
-            UI.controlbarTimeout = window.setTimeout(UI.idleControlbar, 2000);
+            UI.idleControlbarTimeout = window.setTimeout(UI.idleControlbar, 2000);
         },
 
         idleControlbar: function() {
@@ -494,6 +508,10 @@ var UI;
                 .classList.add("noVNC_idle");
         },
 
+        keepControlbar: function() {
+            clearTimeout(UI.closeControlbarTimeout);
+        },
+
         openControlbar: function() {
             document.getElementById('noVNC_control_bar')
                 .classList.add("noVNC_open");
@@ -923,7 +941,6 @@ var UI;
 
         connect: function() {
             UI.closeAllPanels();
-            UI.closeControlbar();
 
             var host = document.getElementById('noVNC_setting_host').value;
             var port = document.getElementById('noVNC_setting_port').value;