]> git.proxmox.com Git - mirror_novnc.git/blobdiff - app/ui.js
Drop UI.rfb reference on all disconnects
[mirror_novnc.git] / app / ui.js
index ead08e545a3899a5c393da70a075813fb941cabd..5fc1ce459cac4ef7ac7a7e6c9ea1a9982c38dd8d 100644 (file)
--- a/app/ui.js
+++ b/app/ui.js
@@ -438,19 +438,6 @@ var UI = {
             UI.keepControlbar();
         }
 
-        // Hide input related buttons in view only mode
-        if (UI.rfb && UI.rfb.viewOnly) {
-            document.getElementById('noVNC_keyboard_button')
-                .classList.add('noVNC_hidden');
-            document.getElementById('noVNC_toggle_extra_keys_button')
-                .classList.add('noVNC_hidden');
-        } else {
-            document.getElementById('noVNC_keyboard_button')
-                .classList.remove('noVNC_hidden');
-            document.getElementById('noVNC_toggle_extra_keys_button')
-                .classList.remove('noVNC_hidden');
-        }
-
         // State change disables viewport dragging.
         // It is enabled (toggled) by direct click on the button
         UI.setViewDrag(false);
@@ -1019,6 +1006,8 @@ var UI = {
         UI.closeAllPanels();
         UI.closeConnectPanel();
 
+        UI.updateVisualState('connecting');
+
         var url;
 
         url = UI.getSetting('encrypt') ? 'wss' : 'ws';
@@ -1045,8 +1034,7 @@ var UI = {
         UI.rfb.scaleViewport = UI.getSetting('resize') === 'scale';
         UI.rfb.resizeSession = UI.getSetting('resize') === 'remote';
 
-        UI.updateVisualState('connecting');
-        UI.updateViewOnly();
+        UI.updateViewOnly(); // requires UI.rfb
     },
 
     disconnect: function() {
@@ -1060,8 +1048,6 @@ var UI = {
 
         UI.updateVisualState('disconnecting');
 
-        UI.rfb = undefined;
-
         // Don't display the connection settings until we're actually disconnected
     },
 
@@ -1114,6 +1100,8 @@ var UI = {
         // UI.disconnect() won't be used in those cases.
         UI.connected = false;
 
+        UI.rfb = undefined;
+
         if (!e.detail.clean) {
             UI.updateVisualState('disconnected');
             if (wasConnected) {
@@ -1606,6 +1594,20 @@ var UI = {
     updateViewOnly: function() {
         if (!UI.rfb) return;
         UI.rfb.viewOnly = UI.getSetting('view_only');
+
+        // Hide input related buttons in view only mode
+        if (UI.rfb.viewOnly) {
+            document.getElementById('noVNC_keyboard_button')
+                .classList.add('noVNC_hidden');
+            document.getElementById('noVNC_toggle_extra_keys_button')
+                .classList.add('noVNC_hidden');
+        } else {
+            document.getElementById('noVNC_keyboard_button')
+                .classList.remove('noVNC_hidden');
+            document.getElementById('noVNC_toggle_extra_keys_button')
+                .classList.remove('noVNC_hidden');
+        }
+        UI.setMouseButton(1); //has it's own logic for hiding/showing
     },
 
     updateLogging: function() {
@@ -1651,7 +1653,7 @@ var UI = {
 };
 
 // Set up translations
-var LINGUAS = ["de", "el", "nl", "pl", "sv"];
+var LINGUAS = ["de", "el", "nl", "pl", "sv", "zh"];
 l10n.setup(LINGUAS);
 if (l10n.language !== "en" && l10n.dictionary === undefined) {
     WebUtil.fetchJSON('app/locale/' + l10n.language + '.json', function (translations) {