summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'Swiften/Whiteboard/WhiteboardClient.cpp')
-rw-r--r--Swiften/Whiteboard/WhiteboardClient.cpp7
1 files changed, 7 insertions, 0 deletions
diff --git a/Swiften/Whiteboard/WhiteboardClient.cpp b/Swiften/Whiteboard/WhiteboardClient.cpp
index 6b352f5..cc41e85 100644
--- a/Swiften/Whiteboard/WhiteboardClient.cpp
+++ b/Swiften/Whiteboard/WhiteboardClient.cpp
@@ -6,10 +6,16 @@
#include <Swiften/Whiteboard/WhiteboardClient.h>
#include <Swiften/Whiteboard/WhiteboardTransformer.h>
+#include <boost/smart_ptr/make_shared.hpp>
namespace Swift {
WhiteboardOperation::ref WhiteboardClient::handleLocalOperationReceived(WhiteboardOperation::ref operation) {
localOperations_.push_back(operation);
+ if (bridge_.size() > 0) {
+ WhiteboardOperation::ref op = boost::make_shared<WhiteboardInsertOperation>(*boost::dynamic_pointer_cast<WhiteboardInsertOperation>(operation).get());
+ op->setParentID(bridge_.back()->getID());
+ bridge_.push_back(op);
+ }
if (lastSentOperationID_.empty())
{
lastSentOperationID_ = operation->getID();
@@ -54,6 +60,7 @@ namespace Swift {
(*it)->setParentID(previousID);
previousID = (*it)->getID();
}
+
temp->setParentID(localOperations_.back()->getID());
localOperations_.push_back(temp);
clientOp = temp;