guacamole-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Jumper <>
Subject Re: Handling of simultaneous key-down and mouse-button events
Date Mon, 22 Oct 2018 15:39:37 GMT
On Mon, Oct 22, 2018, 08:02 Felix Wolfheimer <>

> I'm using an application on a remote desktop served by Guacamole 0.9.14
> (Remote side: CentOS 7.5, MATE Desktop, TurboVNC 2.2, VirtualGL 2.6). The
> application uses the following workflow:
> If pressing the Spacebar (and holding it down) it shows an overlay on an
> OpenGL window it renders. This overlay has three buttons. Each button
> selects a different action for the 3D view (rotate, zoom, pan). So while
> the spacebar is pressed, I'm moving the mouse to this overlay, press the
> left mouse button to select the action, and then move the mouse (spacebar
> and left mouse button still pressed at the same time) to perform the action
> on the 3D view.
> While a normal TurboVNC+VirtualGL connection works for this workflow, the
> behavior gets weird when guacamole is on top of it. The overlay flickers
> once I start moving the mouse (mouse button and spacebar pressed) and the
> 3D view doesn't perform the expected action. I suppose that guacamole has
> some difficulty passing the events to the remote session. It seems like it
> sends a series of key-down and key-release events instead of a single
> key-down event at the start and a key-release event at the end (at least
> the behavior of the remote application looks like this). Has anyone seen
> such a behavior?

Yes. Unfortunately, this isn't a bug per se, but a platform- and
browser-specific aspect of how key events are fired. The key events of
printable keys may autorepeat while held.

To unify things across platforms, as not all do this (or even reliably
report keyup), Guacamole also has its own autorepeat timer within the
keyboard handling. Automatically debouncing with client-side heuristics
would be another approach which could conceivably be implemented (and that
would be compatible with your intentions), but exactly how to do this
without breaking the expectations of protocols and applications which rely
on automatic key repeat would be tricky.

- Mike

View raw message