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/VNCServer.h b/common/rfb/VNCServer.h
index 1e7acc6..850dbd3 100644
--- a/common/rfb/VNCServer.h
+++ b/common/rfb/VNCServer.h
@@ -24,17 +24,24 @@
#include <rfb/UpdateTracker.h>
#include <rfb/SSecurity.h>
+#include <rfb/ScreenSet.h>
namespace rfb {
class VNCServer : public UpdateTracker {
public:
- // setPixelBuffer() tells the server to use the given pixel buffer. If
- // this differs in size from the previous pixel buffer, this may result in
- // protocol messages being sent, or clients being disconnected.
+ // setPixelBuffer() tells the server to use the given pixel buffer (and
+ // optionally a modified screen layout). If this differs in size from
+ // the previous pixel buffer, this may result in protocol messages being
+ // sent, or clients being disconnected.
+ virtual void setPixelBuffer(PixelBuffer* pb, const ScreenSet& layout) = 0;
virtual void setPixelBuffer(PixelBuffer* pb) = 0;
+ // setScreenLayout() modifies the current screen layout without changing
+ // the pixelbuffer. Clients will be notified of the new layout.
+ virtual void setScreenLayout(const ScreenSet& layout) = 0;
+
// getPixelBuffer() returns a pointer to the PixelBuffer object.
virtual PixelBuffer* getPixelBuffer() const = 0;