diff options
Diffstat (limited to 'Swiften/Whiteboard/WhiteboardClient.cpp')
-rw-r--r-- | Swiften/Whiteboard/WhiteboardClient.cpp | 7 |
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; |