From 06309160ee25b7b99c96008f3d4d28933b097715 Mon Sep 17 00:00:00 2001 From: Samuel Mannehed Date: Thu, 8 Mar 2018 16:52:53 +0100 Subject: [PATCH] Only disable animation when element is displayed The transitionend event will not fire when display=none. This can prevent the initial animation for hiding the controlbar in some cases. --- app/ui.js | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/ui.js b/app/ui.js index 592dfcf7..4e301d4e 100644 --- a/app/ui.js +++ b/app/ui.js @@ -549,10 +549,15 @@ var UI = { }, toggleControlbarSide: function () { - // Temporarily disable animation to avoid weird movement + // Temporarily disable animation, if bar is displayed, to avoid weird + // movement. The transitionend-event will not fire when display=none. var bar = document.getElementById('noVNC_control_bar'); - bar.style.transitionDuration = '0s'; - bar.addEventListener('transitionend', function () { this.style.transitionDuration = ""; }); + var barDisplayStyle = window.getComputedStyle(bar).display; + if (barDisplayStyle !== 'none') { + bar.style.transitionDuration = '0s'; + bar.addEventListener('transitionend', function () { + this.style.transitionDuration = ""; }); + } var anchor = document.getElementById('noVNC_control_bar_anchor'); if (anchor.classList.contains("noVNC_right")) {