aboutsummaryrefslogtreecommitdiffstats
path: root/common/rfb/VNCServerST.h
diff options
context:
space:
mode:
authorMike Looijmans <mike.looijmans@topic.nl>2024-01-16 16:27:43 +0100
committerMike Looijmans <mike.looijmans@topic.nl>2024-01-22 14:55:03 +0100
commit71c83b479335337b25dc331d3fb4a6e29382ceb5 (patch)
tree0166c65ac181c9cc809375b1e8680e94c44cbbdd /common/rfb/VNCServerST.h
parent986280b382d57ef4f68d2d4afb13b26772e5acb0 (diff)
downloadtigervnc-71c83b479335337b25dc331d3fb4a6e29382ceb5.tar.gz
tigervnc-71c83b479335337b25dc331d3fb4a6e29382ceb5.zip
VNCServerST: Add a timeout to pointer button ownership
When one clients holds down a button on the pointer device (probably dragging something), other clients' attempts at pointer operations are denied. This yields a sane user experience, but with limits. When one clients starts dragging, and then his network connection fails, other clients are denied access to the pointer until the VNC server finally discovers that the connection is dead and closes it. This can take about 15 minutes. Add a timeout to this policy: If we don't hear from the client for 3 seconds, other clients are allowed to control the pointer once more. This solves the problem that one failing network could make the server completely deaf to other clients for a long time. Signed-off-by: Mike Looijmans <mike.looijmans@topic.nl>
Diffstat (limited to 'common/rfb/VNCServerST.h')
-rw-r--r--common/rfb/VNCServerST.h2
1 files changed, 2 insertions, 0 deletions
diff --git a/common/rfb/VNCServerST.h b/common/rfb/VNCServerST.h
index 028903c9..f688b317 100644
--- a/common/rfb/VNCServerST.h
+++ b/common/rfb/VNCServerST.h
@@ -191,6 +191,8 @@ namespace rfb {
std::list<VNCSConnectionST*> clipboardRequestors;
std::list<network::Socket*> closingSockets;
+ time_t pointerClientTime;
+
ComparingUpdateTracker* comparer;
Point cursorPos;