[ 
https://issues.apache.org/jira/browse/GUACAMOLE-164?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Marko Nikolić updated GUACAMOLE-164:
------------------------------------
    Description: 
There is a problem when the Guacamole application is not occupying the whole 
window and there are some elements inserted above Guacamole application. The 
issue can be seen in Firefox and possible in other browser, because the 
available height is not calculated in a cross-browser way.

{{guacViewport}} directive calculates browser area height and based on the 
result sets height of the viewport. The calculation is made in 
{{fitVisibleArea()}} function, in the following line:

{code:javascript}
var scrollHeight = document.body.scrollHeight;
{code}

However, {{scrollHeight}} does not return same values cross-browser. In Chrome, 
it works as expected (from the Guacamole perspective), but different value is 
returned in Firefox. Different behaviour is not visible when the Guacamole 
client is occupying the whole window, only when there are some elements above.

I have fixed the problem by calculating the height in {{guacViewport}} using 
function from here: 
http://james.padolsey.com/snippets/get-document-height-cross-browser/

{code:javascript}
function getDocHeight() {
    var D = document;
    return Math.max(
        D.body.scrollHeight, D.documentElement.scrollHeight,
        D.body.offsetHeight, D.documentElement.offsetHeight,
        D.body.clientHeight, D.documentElement.clientHeight
    );
}
{code}


Further details on the cross-browser issue can be found here:

http://stackoverflow.com/questions/1145850/how-to-get-height-of-entire-document-with-javascript
http://james.padolsey.com/snippets/get-document-height-cross-browser/


  was:
There is a problem when the Guacamole application is not occupying the whole 
window and there are some elements inserted above Guacamole application. The 
issue can be seen in Firefox and possible in other browser, because the 
available height is not calculated in a cross-browser way.

{{guacViewport}} directive calculates browser area height and based on results 
sets height of the viewport. The calculation is made in {{fitVisibleArea()}} 
function, in the following line:

{code:javascript}
var scrollHeight = document.body.scrollHeight;
{code}

However, {{scrollHeight}} does not return same values cross-browser. In Chrome, 
it works as expected (from the Guacamole perspective), but different value is 
returned in Firefox. Different behaviour is not visible when the Guacamole 
client is occupying the whole window, only when there are some elements above.

I have fixed the problem by calculating the height in {{guacViewport}} using 
function from here: 
http://james.padolsey.com/snippets/get-document-height-cross-browser/

{code:javascript}
function getDocHeight() {
    var D = document;
    return Math.max(
        D.body.scrollHeight, D.documentElement.scrollHeight,
        D.body.offsetHeight, D.documentElement.offsetHeight,
        D.body.clientHeight, D.documentElement.clientHeight
    );
}
{code}


Further details on the cross-browser issue can be found here:

http://stackoverflow.com/questions/1145850/how-to-get-height-of-entire-document-with-javascript
http://james.padolsey.com/snippets/get-document-height-cross-browser/



> guacViewport invalid height calculation
> ---------------------------------------
>
>                 Key: GUACAMOLE-164
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-164
>             Project: Guacamole
>          Issue Type: Bug
>          Components: guacamole-client
>    Affects Versions: 0.9.10-incubating
>         Environment: chrome firefox
>            Reporter: Marko Nikolić
>
> There is a problem when the Guacamole application is not occupying the whole 
> window and there are some elements inserted above Guacamole application. The 
> issue can be seen in Firefox and possible in other browser, because the 
> available height is not calculated in a cross-browser way.
> {{guacViewport}} directive calculates browser area height and based on the 
> result sets height of the viewport. The calculation is made in 
> {{fitVisibleArea()}} function, in the following line:
> {code:javascript}
> var scrollHeight = document.body.scrollHeight;
> {code}
> However, {{scrollHeight}} does not return same values cross-browser. In 
> Chrome, it works as expected (from the Guacamole perspective), but different 
> value is returned in Firefox. Different behaviour is not visible when the 
> Guacamole client is occupying the whole window, only when there are some 
> elements above.
> I have fixed the problem by calculating the height in {{guacViewport}} using 
> function from here: 
> http://james.padolsey.com/snippets/get-document-height-cross-browser/
> {code:javascript}
> function getDocHeight() {
>     var D = document;
>     return Math.max(
>         D.body.scrollHeight, D.documentElement.scrollHeight,
>         D.body.offsetHeight, D.documentElement.offsetHeight,
>         D.body.clientHeight, D.documentElement.clientHeight
>     );
> }
> {code}
> Further details on the cross-browser issue can be found here:
> http://stackoverflow.com/questions/1145850/how-to-get-height-of-entire-document-with-javascript
> http://james.padolsey.com/snippets/get-document-height-cross-browser/



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to