From d48bff62f2f5bc7beecbc4735e8c6deaf8517def Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Wed, 23 Apr 2014 15:51:06 -0700 Subject: [PATCH] GUAC-642: Remove scrollbars before resize. Delay sending of size until after reflow. --- .../src/main/webapp/scripts/client-ui.js | 26 ++++++++++++++----- 1 file changed, 20 insertions(+), 6 deletions(-) diff --git a/guacamole/src/main/webapp/scripts/client-ui.js b/guacamole/src/main/webapp/scripts/client-ui.js index 909506bc7..5591c5d48 100644 --- a/guacamole/src/main/webapp/scripts/client-ui.js +++ b/guacamole/src/main/webapp/scripts/client-ui.js @@ -1475,16 +1475,30 @@ GuacUI.Client.attach = function(guac) { /* * Send size events on resize */ + + var resize_timeout = null; + window.onresize = function() { - var pixel_density = window.devicePixelRatio || 1; - var width = window.innerWidth * pixel_density; - var height = window.innerHeight * pixel_density; + // Remove scrollbars during resize + GuacUI.Client.main.style.overflow = "hidden"; - if (GuacUI.Client.attachedClient) - GuacUI.Client.attachedClient.sendSize(width, height); + // Wait for resize to settle before updating + window.clearTimeout(resize_timeout); + resize_timeout = window.setTimeout(function() { - GuacUI.Client.updateDisplayScale(); + var pixel_density = window.devicePixelRatio || 1; + var width = window.innerWidth * pixel_density; + var height = window.innerHeight * pixel_density; + + GuacUI.Client.main.style.overflow = "auto"; + + if (GuacUI.Client.attachedClient) + GuacUI.Client.attachedClient.sendSize(width, height); + + GuacUI.Client.updateDisplayScale(); + + }, 10); };