Mike Jumper created GUACAMOLE-1918: -------------------------------------- Summary: Multitouch attribute not correctly synced for guac_common_surface Key: GUACAMOLE-1918 URL: https://issues.apache.org/jira/browse/GUACAMOLE-1918 Project: Guacamole Issue Type: Bug Reporter: Mike Jumper
The {{guac_common_surface_dup()}} function currently contains the following code for syncing the multitouch support attribute for a layer: {code:none} /* Synchronize layer-specific properties if applicable */ if (surface->layer->index > 0) { /* Synchronize opacity */ guac_protocol_send_shade(socket, surface->layer, surface->opacity); /* Synchronize location and hierarchy */ guac_protocol_send_move(socket, surface->layer, surface->parent, surface->x, surface->y, surface->z); /* Synchronize multi-touch support level */ guac_protocol_send_set_int(surface->socket, surface->layer, GUAC_PROTOCOL_LAYER_PARAMETER_MULTI_TOUCH, surface->touches); } {code} This is incorrect because: * The multitouch attribute applies only to the default layer (layer 0), but this {{if}} ensures that's exactly the only layer this function _won't_ send that attribute for. * The wrong {{guac_socket}} is referenced (it should be sent to the socket supplied to the {{guac_common_surface_dup()}} call, not the surface's socket. Depending on timing of any call to {{guac_common_surface_set_multitouch()}}, this can result in multitouch support not having any effect. Instead, the multitouch attribute should be sent for only the default layer and to the correct socket. -- This message was sent by Atlassian Jira (v8.20.10#820010)