From a38d65f63a2b1285bb8f7eb13824e68d19b995fc Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Tue, 24 Jan 2012 21:05:01 -0800 Subject: [PATCH] Determine size of viewport using element stretched to fit view. --- guacamole/src/main/webapp/client.xhtml | 3 +++ guacamole/src/main/webapp/scripts/interface.js | 8 +++++--- guacamole/src/main/webapp/styles/client.css | 13 +++++++++++++ 3 files changed, 21 insertions(+), 3 deletions(-) diff --git a/guacamole/src/main/webapp/client.xhtml b/guacamole/src/main/webapp/client.xhtml index 1f4329601..21a837fb3 100644 --- a/guacamole/src/main/webapp/client.xhtml +++ b/guacamole/src/main/webapp/client.xhtml @@ -65,6 +65,9 @@
+ +
+
diff --git a/guacamole/src/main/webapp/scripts/interface.js b/guacamole/src/main/webapp/scripts/interface.js index c42f39a81..527fd77da 100644 --- a/guacamole/src/main/webapp/scripts/interface.js +++ b/guacamole/src/main/webapp/scripts/interface.js @@ -2,6 +2,7 @@ // UI Definition var GuacamoleUI = { + "viewport" : document.getElementById("viewportClone"), "display" : document.getElementById("display"), "menu" : document.getElementById("menu"), "menuControl" : document.getElementById("menuControl"), @@ -303,8 +304,9 @@ GuacamoleUI.attach = function(guac) { var mouse_view_x = mouseState.x + GuacamoleUI.display.offsetLeft - window.pageXOffset; var mouse_view_y = mouseState.y + GuacamoleUI.display.offsetTop - window.pageYOffset; - var view_width = document.body.clientWidth; - var view_height = document.body.clientHeight; + // Determine viewport dimensioins + var view_width = GuacamoleUI.viewport.offsetWidth; + var view_height = GuacamoleUI.viewport.offsetHeight; // Determine scroll amounts based on mouse position relative to document @@ -323,7 +325,7 @@ GuacamoleUI.attach = function(guac) { scroll_amount_y = mouse_view_y; else scroll_amount_y = 0; - + // Scroll (if necessary) to keep mouse on screen. window.scrollBy(scroll_amount_x, scroll_amount_y); diff --git a/guacamole/src/main/webapp/styles/client.css b/guacamole/src/main/webapp/styles/client.css index 9d5025e85..b3693aebb 100644 --- a/guacamole/src/main/webapp/styles/client.css +++ b/guacamole/src/main/webapp/styles/client.css @@ -171,3 +171,16 @@ div#menuControl { z-index: 3; } + +/* Viewport Clone */ + +div#viewportClone { + display: table; + height: 100%; + width: 100%; + position: fixed; + left: 0; + top: 0; + + visibility: hidden; +}