diff --git a/src/mainview/components/CallOverlay.qml b/src/mainview/components/CallOverlay.qml index 3d42c072328eb65fd8b08be656d9dc0e0464e3e8..1a01bfc09e51aa577e695f93f4e3ff791b43c8e2 100644 --- a/src/mainview/components/CallOverlay.qml +++ b/src/mainview/components/CallOverlay.qml @@ -87,12 +87,6 @@ Rectangle { || pH < (distantRenderer.height - distantRenderer.getYOffset() * 2 - 1)) } - // returns true if participant takes renderer's width - function showMinimize(pX, pW) { - return (pX - distantRenderer.getXOffset() === 0 - && pW >= distantRenderer.width - distantRenderer.getXOffset() * 2 - 1) - } - function handleParticipantsInfo(infos) { // TODO: in the future the conference layout should be entirely managed by the client // Hack: truncate and ceil participant's overlay position and size to correct @@ -132,11 +126,9 @@ Rectangle { participantOverlays[p].y, participantOverlays[p].width, participantOverlays[p].height) - showMin = showMinimize(participantOverlays[p].x, - participantOverlays[p].width) participantOverlays[p].setMenu(participant.uri, participant.bestName, - participant.isLocal, showMax, showMin) + participant.isLocal, participant.active, showMax) if (participant.videoMuted) participantOverlays[p].setAvatar(participant.avatar) else @@ -177,10 +169,9 @@ Rectangle { } showMax = showMaximize(hover.x, hover.y, hover.width, hover.height) - showMin = showMinimize(hover.x, hover.width) hover.setMenu(infos[infoVariant].uri, infos[infoVariant].bestName, - infos[infoVariant].isLocal, showMax, showMin) + infos[infoVariant].isLocal, infos[infoVariant].active, showMax) if (infos[infoVariant].videoMuted) hover.setAvatar(infos[infoVariant].avatar) else diff --git a/src/mainview/components/ParticipantOverlay.qml b/src/mainview/components/ParticipantOverlay.qml index f40e4ce18a39ecc5b27431208676609d1f0b5003..23739d725a951fdc0d72fa0c6e83d52a2c9ade79 100644 --- a/src/mainview/components/ParticipantOverlay.qml +++ b/src/mainview/components/ParticipantOverlay.qml @@ -42,10 +42,10 @@ Rectangle { arg(shapeWidth) property string uri: overlayMenu.uri + property bool participantIsActive: false property bool participantIsHost: false property bool participantIsModerator: false property bool participantIsMuted: false - property bool participantIsLocalMuted: false property bool participantIsModeratorMuted: false property bool participantMenuActive: false @@ -59,7 +59,7 @@ Rectangle { } } - function setMenu(newUri, bestName, isLocal, showMax, showMin) { + function setMenu(newUri, bestName, isLocal, isActive, showMax) { overlayMenu.uri = newUri overlayMenu.bestName = bestName @@ -68,6 +68,7 @@ Rectangle { var isModerator = CallAdapter.isCurrentModerator() participantIsHost = CallAdapter.participantIsHost(overlayMenu.uri) participantIsModerator = CallAdapter.isModerator(overlayMenu.uri) + participantIsActive = isActive overlayMenu.showSetModerator = isHost && !isLocal && !participantIsModerator overlayMenu.showUnsetModerator = isHost && !isLocal && participantIsModerator @@ -82,7 +83,7 @@ Rectangle { overlayMenu.showModeratorMute = isModerator && !isModeratorMuted overlayMenu.showModeratorUnmute = isModerator && isModeratorMuted overlayMenu.showMaximize = isModerator && showMax - overlayMenu.showMinimize = isModerator && showMin + overlayMenu.showMinimize = isModerator && participantIsActive overlayMenu.showHangup = isModerator && !isLocal && !participantIsHost }