mirror of
https://github.com/gyurix1968/guacamole-client.git
synced 2025-09-09 14:41:21 +00:00
GUAC-705: Only call window.scrollTo() when absolutely necessary.
This commit is contained in:
@@ -1583,26 +1583,32 @@ GuacUI.Client.attach = function(guac) {
|
|||||||
* Reflow layout and send size events on resize/scroll
|
* Reflow layout and send size events on resize/scroll
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var last_scroll_top = 0;
|
var last_scroll_left = 0;
|
||||||
var last_scroll_left = 0;
|
var last_scroll_top = 0;
|
||||||
var last_width = 0;
|
var last_scroll_width = 0;
|
||||||
var last_height = 0;
|
var last_scroll_height = 0;
|
||||||
|
var last_window_width = 0;
|
||||||
|
var last_window_height = 0;
|
||||||
|
|
||||||
function __update_layout() {
|
function __update_layout() {
|
||||||
|
|
||||||
// Reset scroll and reposition document such that it's on-screen
|
|
||||||
window.scrollTo(document.body.scrollWidth, document.body.scrollHeight);
|
|
||||||
|
|
||||||
// Only reflow if size or scroll have changed
|
// Only reflow if size or scroll have changed
|
||||||
if (document.body.scrollTop != last_scroll_top
|
if (document.body.scrollLeft !== last_scroll_left
|
||||||
|| document.body.scrollLeft != last_scroll_left
|
|| document.body.scrollTop !== last_scroll_top
|
||||||
|| window.innerWidth != last_width
|
|| document.body.scrollWidth !== last_scroll_width
|
||||||
|| window.innerHeight != last_height) {
|
|| document.body.scrollHeight !== last_scroll_height
|
||||||
|
|| window.innerWidth !== last_window_width
|
||||||
|
|| window.innerHeight !== last_window_height) {
|
||||||
|
|
||||||
last_scroll_top = document.body.scrollTop;
|
last_scroll_top = document.body.scrollTop;
|
||||||
last_scroll_left = document.body.scrollLeft;
|
last_scroll_left = document.body.scrollLeft;
|
||||||
last_width = window.innerWidth;
|
last_scroll_width = document.body.scrollWidth;
|
||||||
last_height = window.innerHeight;
|
last_scroll_height = document.body.scrollHeight;
|
||||||
|
last_window_width = window.innerWidth;
|
||||||
|
last_window_height = window.innerHeight;
|
||||||
|
|
||||||
|
// Reset scroll and reposition document such that it's on-screen
|
||||||
|
window.scrollTo(document.body.scrollWidth, document.body.scrollHeight);
|
||||||
|
|
||||||
// Determine height of bottom section (currently only text input)
|
// Determine height of bottom section (currently only text input)
|
||||||
var bottom = GuacUI.Client.text_input.container;
|
var bottom = GuacUI.Client.text_input.container;
|
||||||
|
Reference in New Issue
Block a user