guacamole-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Jumper (JIRA)" <j...@apache.org>
Subject [jira] [Updated] (GUACAMOLE-165) Optimal height/width calculations incorrect if client template is modified
Date Sat, 28 Jan 2017 07:09:24 GMT

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

Michael Jumper updated GUACAMOLE-165:
-------------------------------------
    Description: 
If the client template is modified such that the Guacamole display does not occupy the whole
browser window, the width/height values submitted as "optimal" via {{GUAC_WIDTH}} and {{GUAC_HEIGHT}}
will not match the actual space available for the client display:

{code:javascript|title=ManagedClient.js}
        // Calculate optimal width/height for display
        var pixel_density = $window.devicePixelRatio || 1;
        var optimal_dpi = pixel_density * 96;
        var optimal_width = $window.innerWidth * pixel_density;
        var optimal_height = $window.innerHeight * pixel_density;

        // Build base connect string
        var connectString =
              "token="             + encodeURIComponent(authenticationService.getCurrentToken())
            + "&GUAC_DATA_SOURCE=" + encodeURIComponent(identifier.dataSource)
            + "&GUAC_ID="          + encodeURIComponent(identifier.id)
            + "&GUAC_TYPE="        + encodeURIComponent(identifier.type)
            + "&GUAC_WIDTH="       + Math.floor(optimal_width)
            + "&GUAC_HEIGHT="      + Math.floor(optimal_height)
            + "&GUAC_DPI="         + Math.floor(optimal_dpi)
            + (connectionParameters ? '&' + connectionParameters : '');
{code}


  was:
When the Guacamole client is not occupying the whole browser window, the screen ratio is not
calculated properly. If there are some elements above client (e.g. added from extension),
the connection string height is taking optimal height calculated using window.height. This
is not correct if there are elements above and the client is not occupying the whole area.

{code:javascript|title=ManagedClient.js}
        // Calculate optimal width/height for display
        var pixel_density = $window.devicePixelRatio || 1;
        var optimal_dpi = pixel_density * 96;
        var optimal_width = $window.innerWidth * pixel_density;
        var optimal_height = $window.innerHeight * pixel_density;

        // Build base connect string
        var connectString =
              "token="             + encodeURIComponent(authenticationService.getCurrentToken())
            + "&GUAC_DATA_SOURCE=" + encodeURIComponent(identifier.dataSource)
            + "&GUAC_ID="          + encodeURIComponent(identifier.id)
            + "&GUAC_TYPE="        + encodeURIComponent(identifier.type)
            + "&GUAC_WIDTH="       + Math.floor(optimal_width)
            + "&GUAC_HEIGHT="      + Math.floor(optimal_height)
            + "&GUAC_DPI="         + Math.floor(optimal_dpi)
            + (connectionParameters ? '&' + connectionParameters : '');
{code}

If the GUAC_HEIGHT parameter is corrected for the size of the element above client, the ratio
is correct.



> Optimal height/width calculations incorrect if client template is modified
> --------------------------------------------------------------------------
>
>                 Key: GUACAMOLE-165
>                 URL: https://issues.apache.org/jira/browse/GUACAMOLE-165
>             Project: Guacamole
>          Issue Type: Bug
>          Components: guacamole
>    Affects Versions: 0.9.10-incubating
>         Environment: browser
>            Reporter: Marko Nikolić
>
> If the client template is modified such that the Guacamole display does not occupy the
whole browser window, the width/height values submitted as "optimal" via {{GUAC_WIDTH}} and
{{GUAC_HEIGHT}} will not match the actual space available for the client display:
> {code:javascript|title=ManagedClient.js}
>         // Calculate optimal width/height for display
>         var pixel_density = $window.devicePixelRatio || 1;
>         var optimal_dpi = pixel_density * 96;
>         var optimal_width = $window.innerWidth * pixel_density;
>         var optimal_height = $window.innerHeight * pixel_density;
>         // Build base connect string
>         var connectString =
>               "token="             + encodeURIComponent(authenticationService.getCurrentToken())
>             + "&GUAC_DATA_SOURCE=" + encodeURIComponent(identifier.dataSource)
>             + "&GUAC_ID="          + encodeURIComponent(identifier.id)
>             + "&GUAC_TYPE="        + encodeURIComponent(identifier.type)
>             + "&GUAC_WIDTH="       + Math.floor(optimal_width)
>             + "&GUAC_HEIGHT="      + Math.floor(optimal_height)
>             + "&GUAC_DPI="         + Math.floor(optimal_dpi)
>             + (connectionParameters ? '&' + connectionParameters : '');
> {code}



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

Mime
View raw message