]> source.dussan.org Git - tigervnc.git/commitdiff
Increase time required to override pointerClient
authorSamuel Mannehed <samuel@cendio.se>
Fri, 26 Jan 2024 12:49:04 +0000 (13:49 +0100)
committerSamuel Mannehed <samuel@cendio.se>
Fri, 26 Jan 2024 12:49:04 +0000 (13:49 +0100)
Mouse events in shared connections are locked to one viewer at a time.
If the a mouse drag is happening in the first viewer, the second viewer
can't interfere unless the first viewer has been inactive for a set
amount of time. This timeout was put in place in
71c83b479335337b25dc331d3fb4a6e29382ceb5 to handle the case where the
first viewer disconnects while the mouse drag is happening. Prior to the
timeout, this resulted in all input being blocked.

This commit increases this timeout from 3 seconds to 10 seconds. This is
to minimize the risk of this happening during "normal" use. With this
change, the first viewer has to be inactive for 10 seconds before the
second viewer can take control again.

In the case where the first viewer disconnects, a waiting time of 10
seconds for the second viewer seems very reasonable.

common/rfb/VNCServerST.cxx

index 50efbb3c9f439d0d118203b4b801c19a93487733..560a0ffadf5bcb7ddaa81b5f4d5454e87ce03cbb 100644 (file)
@@ -493,7 +493,7 @@ void VNCServerST::pointerEvent(VNCSConnectionST* client,
   // to provide a bit more sane user experience. But limit the time to
   // prevent locking out all others when e.g. the network is down.
   if ((pointerClient != NULL) && (pointerClient != client) &&
-      ((now - pointerClientTime) < 3))
+      ((now - pointerClientTime) < 10))
     return;
 
   pointerClientTime = now;