aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPierre Ossman <ossman@cendio.se>2009-04-22 15:37:51 +0000
committerPierre Ossman <ossman@cendio.se>2009-04-22 15:37:51 +0000
commit53125a76e9f7a1f8de65c802fba2741559345788 (patch)
treea8bd4ebd1e06cdc140334d89111e0e4651c907aa
parent989dbd1ee9289bc486018fc53b576ed9dfe29d8c (diff)
downloadtigervnc-53125a76e9f7a1f8de65c802fba2741559345788.tar.gz
tigervnc-53125a76e9f7a1f8de65c802fba2741559345788.zip
UltraVNC sends a new non-incr. FUR when it gets a DesktopSize rect, and
TightVNC drops the framebuffer, so we can't realistically send it every non-incr FUR. Besides, the client needs to keep track of framebuffer dimensions anyway. git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3786 3789f03b-4d11-0410-bbf8-ca57d06f2519
-rw-r--r--common/rfb/VNCSConnectionST.cxx10
1 files changed, 8 insertions, 2 deletions
diff --git a/common/rfb/VNCSConnectionST.cxx b/common/rfb/VNCSConnectionST.cxx
index fdcea883..cc7c9e8e 100644
--- a/common/rfb/VNCSConnectionST.cxx
+++ b/common/rfb/VNCSConnectionST.cxx
@@ -522,9 +522,15 @@ void VNCSConnectionST::framebufferUpdateRequest(const Rect& r,bool incremental)
// Non-incremental update - treat as if area requested has changed
updates.add_changed(reqRgn);
server->comparer->add_changed(reqRgn);
- // And update the clients view of screen layout
- writer()->writeSetDesktopSize();
+
+ // And send the screen layout to the client (which, unlike the
+ // framebuffer dimensions, the client doesn't get during init)
writer()->writeExtendedDesktopSize();
+
+ // We do not send a DesktopSize since it only contains the
+ // framebuffer size (which the client already should know) and
+ // because some clients don't handle extra DesktopSize events
+ // very well.
}
}