Basic book keeping of screen layout on server.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3706 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/rfb/SMsgWriterV3.cxx b/common/rfb/SMsgWriterV3.cxx
index ca6f3f0..de09396 100644
--- a/common/rfb/SMsgWriterV3.cxx
+++ b/common/rfb/SMsgWriterV3.cxx
@@ -190,14 +190,20 @@
os->writeU16(cp->width);
os->writeU16(cp->height);
os->writeU32(pseudoEncodingExtendedDesktopSize);
- os->writeU8(1); // # screens
+
+ os->writeU8(cp->screenLayout.num_screens());
os->pad(3);
- os->writeU32(1); // id
- os->writeU16(0); // x-pos
- os->writeU16(0); // y-pos
- os->writeU16(cp->width); // width
- os->writeU16(cp->height); // height
- os->writeU32(0); // flags
+
+ ScreenSet::const_iterator iter;
+ for (iter = cp->screenLayout.begin();iter != cp->screenLayout.end();++iter) {
+ os->writeU32(iter->id);
+ os->writeU16(iter->dimensions.tl.x);
+ os->writeU16(iter->dimensions.tl.y);
+ os->writeU16(iter->dimensions.width());
+ os->writeU16(iter->dimensions.height());
+ os->writeU32(iter->flags);
+ }
+
needExtendedDesktopSize = false;
}