Implement server side support for SetDesktopSize.
It has some warts, but should be feature complete. Most of the magic happens
in the desktop class though.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3713 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/rfb/SMsgWriter.h b/common/rfb/SMsgWriter.h
index 3c6da95..5df7270 100644
--- a/common/rfb/SMsgWriter.h
+++ b/common/rfb/SMsgWriter.h
@@ -27,6 +27,7 @@
#include <rfb/screenTypes.h>
#include <rfb/Encoder.h>
#include <rfb/PixelBuffer.h>
+#include <rfb/ScreenSet.h>
namespace rdr { class OutStream; }
@@ -75,8 +76,13 @@
// writeSetDesktopSize() on a V3 writer won't actually write immediately,
// but will write the relevant pseudo-rectangle as part of the next update.
virtual bool writeSetDesktopSize()=0;
- // Same thing for the extended version
- virtual bool writeExtendedDesktopSize(rdr::U16 error = resultUnsolicited)=0;
+ // Same thing for the extended version. The first version queues up a
+ // generic update of the current server state, but the second queues a
+ // specific message.
+ virtual bool writeExtendedDesktopSize()=0;
+ virtual bool writeExtendedDesktopSize(rdr::U16 reason, rdr::U16 result,
+ int fb_width, int fb_height,
+ const ScreenSet& layout)=0;
virtual bool writeSetDesktopName()=0;