diff options
author | Pierre Ossman <ossman@cendio.se> | 2015-06-09 16:10:39 +0200 |
---|---|---|
committer | Pierre Ossman <ossman@cendio.se> | 2015-06-09 16:10:39 +0200 |
commit | b64dbf29aeaaa41eed47ea48e3ccfa9ae563c6f2 (patch) | |
tree | 4db4c64e493e9e1cba224423a454c7f1e94faf8c /common | |
parent | 671d2effa0b30b8883edb8d7f6f65e23f0908311 (diff) | |
download | tigervnc-b64dbf29aeaaa41eed47ea48e3ccfa9ae563c6f2.tar.gz tigervnc-b64dbf29aeaaa41eed47ea48e3ccfa9ae563c6f2.zip |
Avoid losing updates on partial requests
A request may be for only part of the frame buffer, meaning we cannot
discard all changes just because we've send out an update. There might
still be modified areas remaining that haven't been requested yet.
Diffstat (limited to 'common')
-rw-r--r-- | common/rfb/VNCSConnectionST.cxx | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/common/rfb/VNCSConnectionST.cxx b/common/rfb/VNCSConnectionST.cxx index f45ee7e0..c63e6b62 100644 --- a/common/rfb/VNCSConnectionST.cxx +++ b/common/rfb/VNCSConnectionST.cxx @@ -1056,8 +1056,11 @@ void VNCSConnectionST::writeFramebufferUpdate() writeRTTPing(); + // The request might be for just part of the screen, so we cannot + // just clear the entire update tracker. + updates.subtract(requested); + requested.clear(); - updates.clear(); } out: |