diff --git a/src/components/CallView/CallView.vue b/src/components/CallView/CallView.vue
index c24424697c3e..886886e46ba1 100644
--- a/src/components/CallView/CallView.vue
+++ b/src/components/CallView/CallView.vue
@@ -75,8 +75,12 @@
:shared-data="sharedDatas[shownRemoteScreenPeerId]"
is-big />
-
+
-
+ @click-presenter="toggleShowPresenterOverlay" />
+
import debounce from 'debounce'
+import VueDraggableResizable from 'vue-draggable-resizable'
import AccountBox from 'vue-material-design-icons/AccountBoxOutline.vue'
@@ -169,7 +174,6 @@ import ReactionToaster from './shared/ReactionToaster.vue'
import Screen from './shared/Screen.vue'
import VideoVue from './shared/VideoVue.vue'
import ViewerOverlayCallView from './shared/ViewerOverlayCallView.vue'
-import TransitionWrapper from '../TransitionWrapper.vue'
import { SIMULCAST } from '../../constants.js'
import BrowserStorage from '../../services/BrowserStorage.js'
@@ -187,13 +191,13 @@ export default {
AccountBox,
EmptyCallView,
ViewerOverlayCallView,
+ VueDraggableResizable,
Grid,
LocalVideo,
NcButton,
ReactionToaster,
Screen,
VideoVue,
- TransitionWrapper,
},
props: {
@@ -236,6 +240,8 @@ export default {
isBackgroundBlurred: true,
showPresenterOverlay: true,
debounceFetchPeers: () => {},
+ width: window.innerWidth,
+ height: window.innerWidth,
}
},
computed: {
diff --git a/src/components/CallView/shared/VideoVue.vue b/src/components/CallView/shared/VideoVue.vue
index ca89ed25ae27..182d6a0288e4 100644
--- a/src/components/CallView/shared/VideoVue.vue
+++ b/src/components/CallView/shared/VideoVue.vue
@@ -37,6 +37,10 @@
:class="fitVideo ? 'video--fit' : 'video--fill'"
class="video"
@playing="updateVideoAspectRatio" />
+
@@ -77,7 +81,6 @@
:has-shadow="hasVideo"
:participant-name="participantName" />
-
@@ -190,7 +193,7 @@ export default {
},
},
- emits: ['click-video'],
+ emits: ['click-video', 'click-presenter'],
setup() {
const guestNameStore = useGuestNameStore()
@@ -303,12 +306,14 @@ export default {
'video-container-grid': this.isGrid,
'video-container-big': this.isBig,
'one-to-one': this.isOneToOne,
+ 'presenter-overlay': this.isPresenterOverlay
}
},
videoWrapperClass() {
return {
'icon-loading': this.isLoading,
+ 'presenter-overlay': this.isPresenterOverlay
}
},
@@ -659,6 +664,10 @@ export default {
border-radius: calc(var(--default-clickable-area) / 2);
}
+.videoWrapper.presenter-overlay > video {
+ border-radius: 50%;
+}
+
.videoWrapper.icon-loading:after {
height: 60px;
width: 60px;
@@ -702,6 +711,10 @@ export default {
border-radius: calc(var(--default-clickable-area) / 2);
}
+.video-container.presenter-overlay::after {
+ border-radius: 50%;
+}
+
.video-container.speaking::after {
content: '';
box-shadow: inset 0 0 0 2px white;
@@ -715,17 +728,16 @@ export default {
.presenter-icon__hide {
position: absolute;
- height: 100%;
- width: 100%;
- top: 0;
- left: 0;
+ top: 65%;
+ left: 40%;
color: white;
-}
-
-.video-container.presenter::after {
- content: '';
background-color: rgba(0, 0, 0, 0.5);
- cursor: pointer;
+ border-radius: 50%;
+
+ &:hover {
+ cursor: pointer;
+ }
+
}