You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@guacamole.apache.org by GitBox <gi...@apache.org> on 2021/02/07 09:55:03 UTC

[GitHub] [guacamole-server] mike-jumper opened a new pull request #331: GUACAMOLE-1204: Add server-side support for pass-through of multi-touch events.

mike-jumper opened a new pull request #331:
URL: https://github.com/apache/guacamole-server/pull/331


   This change adds RDP support for processing of received multi-touch events leveraging the RDPEI channel. If enabled on the connection and supported by the RDP server, this allows direct touch interaction with applications running within the remote desktop that support touch.
   
   This new support relies on:
   
   * A new Guacamole instruction, `touch`, which communicates the details of each touch contact from client to server.
   * A new Guacamole layer parameter, `multi-touch`, which allows the server to report to the client that touch events are supported (to allow the client to decide whether to rely on mouse emulation vs. touch pass-through).
   
   Each touch event consists of:
   
   * An arbitrary ID (to distinguish one contact from another)
   * X/Y coordinates
   * An approximation of the contact area (X/Y radius of an ellipse, as well as the angle of that ellipse)
   * The relative force applied (where 1 is the maximum force represented by the device and 0 is a touch that has been released)
   
   Unlike the JavaScript touch events, and for the sake of simplicity, I have leveraged the force value to denote whether a touch has ended. There is no separate instruction for deleting a touch - the existing touch is simply updated with a force of 0.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [guacamole-server] jmuehlner merged pull request #331: GUACAMOLE-1204: Add server-side support for pass-through of multi-touch events.

Posted by GitBox <gi...@apache.org>.
jmuehlner merged pull request #331:
URL: https://github.com/apache/guacamole-server/pull/331


   


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [guacamole-server] mike-jumper commented on a change in pull request #331: GUACAMOLE-1204: Add server-side support for pass-through of multi-touch events.

Posted by GitBox <gi...@apache.org>.
mike-jumper commented on a change in pull request #331:
URL: https://github.com/apache/guacamole-server/pull/331#discussion_r574979908



##########
File path: src/libguac/guacamole/user.h
##########
@@ -509,6 +509,27 @@ struct guac_user {
      */
     guac_user_argv_handler* argv_handler;
 
+    /**
+     * Handler for mouse events sent by the Gaucamole web-client.

Review comment:
       Whoops. Fixed this one via rebase, too.
   
   🧀 🐁 




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [guacamole-server] jmuehlner commented on a change in pull request #331: GUACAMOLE-1204: Add server-side support for pass-through of multi-touch events.

Posted by GitBox <gi...@apache.org>.
jmuehlner commented on a change in pull request #331:
URL: https://github.com/apache/guacamole-server/pull/331#discussion_r574973591



##########
File path: src/libguac/guacamole/user.h
##########
@@ -509,6 +509,27 @@ struct guac_user {
      */
     guac_user_argv_handler* argv_handler;
 
+    /**
+     * Handler for mouse events sent by the Gaucamole web-client.

Review comment:
       mouse?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [guacamole-server] jmuehlner commented on a change in pull request #331: GUACAMOLE-1204: Add server-side support for pass-through of multi-touch events.

Posted by GitBox <gi...@apache.org>.
jmuehlner commented on a change in pull request #331:
URL: https://github.com/apache/guacamole-server/pull/331#discussion_r574973548



##########
File path: src/libguac/guacamole/user-fntypes.h
##########
@@ -95,6 +95,51 @@ typedef void* guac_user_callback(guac_user* user, void* data);
 typedef int guac_user_mouse_handler(guac_user* user, int x, int y,
         int button_mask);
 
+/**
+ * Handler for Guacamole touch events, invoked when a "touch" instruction has
+ * been received from a user.
+ *
+ * @param user
+ *     The user that sent the touch event.
+ *
+ * @param id
+ *     An arbitrary integer ID which uniquely identifies this contact relative
+ *     to other active contacts.
+ *
+ * @param x
+ *     The X coordinate of the center of the touch contact within the display
+ *     when the event occurred, in pixels. This value is not guaranteed to be
+ *     within the bounds of the display area.
+ *
+ * @param y
+ *     The Y coordinate of the center of the touch contact within the display
+ *     when the event occurred, in pixels. This value is not guaranteed to be
+ *     within the bounds of the display area.
+ *
+ * @param x_radius
+ *     The X radius of the ellipse covering the general area of the touch
+ *     contact, in pixels.
+ *
+ * @param y_radius
+ *     The Y radius of the ellipse covering the general area of the touch
+ *     contact, in pixels.
+ *
+ * @param angle
+ *     The rough angle of clockwise rotation of the general area of the touch
+ *     contact, in degrees.
+ *
+ * @param force
+ *     The relative force exerted by the touch contact, where 0 is no force
+ *     (the touch has been lifted) and 1 is maximum force (the maximum amount
+ *     of force representable by the device).
+ *
+ * @return
+ *     Zero if the mouse event was handled successfully, or non-zero if an

Review comment:
       mouse?




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [guacamole-server] mike-jumper commented on a change in pull request #331: GUACAMOLE-1204: Add server-side support for pass-through of multi-touch events.

Posted by GitBox <gi...@apache.org>.
mike-jumper commented on a change in pull request #331:
URL: https://github.com/apache/guacamole-server/pull/331#discussion_r574979782



##########
File path: src/libguac/guacamole/user-fntypes.h
##########
@@ -95,6 +95,51 @@ typedef void* guac_user_callback(guac_user* user, void* data);
 typedef int guac_user_mouse_handler(guac_user* user, int x, int y,
         int button_mask);
 
+/**
+ * Handler for Guacamole touch events, invoked when a "touch" instruction has
+ * been received from a user.
+ *
+ * @param user
+ *     The user that sent the touch event.
+ *
+ * @param id
+ *     An arbitrary integer ID which uniquely identifies this contact relative
+ *     to other active contacts.
+ *
+ * @param x
+ *     The X coordinate of the center of the touch contact within the display
+ *     when the event occurred, in pixels. This value is not guaranteed to be
+ *     within the bounds of the display area.
+ *
+ * @param y
+ *     The Y coordinate of the center of the touch contact within the display
+ *     when the event occurred, in pixels. This value is not guaranteed to be
+ *     within the bounds of the display area.
+ *
+ * @param x_radius
+ *     The X radius of the ellipse covering the general area of the touch
+ *     contact, in pixels.
+ *
+ * @param y_radius
+ *     The Y radius of the ellipse covering the general area of the touch
+ *     contact, in pixels.
+ *
+ * @param angle
+ *     The rough angle of clockwise rotation of the general area of the touch
+ *     contact, in degrees.
+ *
+ * @param force
+ *     The relative force exerted by the touch contact, where 0 is no force
+ *     (the touch has been lifted) and 1 is maximum force (the maximum amount
+ *     of force representable by the device).
+ *
+ * @return
+ *     Zero if the mouse event was handled successfully, or non-zero if an

Review comment:
       Whoops. Corrected via rebase.
   
   🐭 🧀 




----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org



[GitHub] [guacamole-server] jmuehlner commented on pull request #331: GUACAMOLE-1204: Add server-side support for pass-through of multi-touch events.

Posted by GitBox <gi...@apache.org>.
jmuehlner commented on pull request #331:
URL: https://github.com/apache/guacamole-server/pull/331#issuecomment-777969824


   Well, this all looks pretty reasonable to me.


----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

For queries about this service, please contact Infrastructure at:
users@infra.apache.org