From e3ae92ec84034ae13dd66702ee1e5d2aa03d4457 Mon Sep 17 00:00:00 2001 From: Simon Walton Date: Tue, 26 Nov 2019 16:06:25 -0800 Subject: [PATCH] Send notification whenever screen-share zone changes --- assignment-client/src/avatars/AvatarMixerClientData.cpp | 4 +++- assignment-client/src/avatars/MixerAvatar.h | 3 +++ 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/assignment-client/src/avatars/AvatarMixerClientData.cpp b/assignment-client/src/avatars/AvatarMixerClientData.cpp index 5fdbd4cc9a..f86dc7f766 100644 --- a/assignment-client/src/avatars/AvatarMixerClientData.cpp +++ b/assignment-client/src/avatars/AvatarMixerClientData.cpp @@ -165,8 +165,10 @@ int AvatarMixerClientData::parseData(ReceivedMessage& message, const SlaveShared _avatar->setHasPriority(currentlyHasPriority); } bool isInScreenshareZone = findContainingZone.isInScreenshareZone; - if (isInScreenshareZone != _avatar->isInScreenshareZone()) { + if (isInScreenshareZone != _avatar->isInScreenshareZone() + || findContainingZone.screenshareZoneid != _avatar->getScreenshareZone()) { _avatar->setInScreenshareZone(isInScreenshareZone); + _avatar->setScreenshareZone(findContainingZone.screenshareZoneid); const QUuid& zoneId = isInScreenshareZone ? findContainingZone.screenshareZoneid : QUuid(); auto nodeList = DependencyManager::get(); auto packet = NLPacket::create(PacketType::AvatarZonePresence, 2 * NUM_BYTES_RFC4122_UUID, true); diff --git a/assignment-client/src/avatars/MixerAvatar.h b/assignment-client/src/avatars/MixerAvatar.h index 57daef021d..09a3522067 100644 --- a/assignment-client/src/avatars/MixerAvatar.h +++ b/assignment-client/src/avatars/MixerAvatar.h @@ -45,6 +45,8 @@ public: bool isInScreenshareZone() const { return _inScreenshareZone; } void setInScreenshareZone(bool value = true) { _inScreenshareZone = value; } + const QUuid& getScreenshareZone() const { return _screenshareZone; } + void setScreenshareZone(QUuid zone) { _screenshareZone = zone; } private: bool _needsHeroCheck { false }; @@ -69,6 +71,7 @@ private: bool _certifyFailed { false }; bool _needsIdentityUpdate { false }; bool _inScreenshareZone { false }; + QUuid _screenshareZone; bool generateFSTHash(); bool validateFSTHash(const QString& publicKey) const;