Change fullscreen button to expand button in PIP view

and fix call controls which didn't appear in video call
This commit is contained in:
David Baker 2020-11-19 16:36:23 +00:00
parent 84f1ebf63a
commit 49bd66c377
3 changed files with 33 additions and 4 deletions

View file

@ -75,7 +75,7 @@ limitations under the License.
margin-left: auto; margin-left: auto;
} }
.mx_CallView_header_control_fullscreen { .mx_CallView_header_button {
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
cursor: pointer; cursor: pointer;
@ -90,10 +90,21 @@ limitations under the License.
mask-repeat: no-repeat; mask-repeat: no-repeat;
mask-size: contain; mask-size: contain;
mask-position: center; mask-position: center;
}
}
.mx_CallView_header_button_fullscreen {
&::before {
mask-image: url('$(res)/img/element-icons/call/fullscreen.svg'); mask-image: url('$(res)/img/element-icons/call/fullscreen.svg');
} }
} }
.mx_CallView_header_button_expand {
&::before {
mask-image: url('$(res)/img/element-icons/call/expand.svg');
}
}
.mx_CallView_header_roomName { .mx_CallView_header_roomName {
font-weight: bold; font-weight: bold;
font-size: 12px; font-size: 12px;

View file

@ -0,0 +1,3 @@
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
<path d="M6 19H18C18.55 19 19 18.55 19 18V6C19 5.45 18.55 5 18 5H13C12.45 5 12 4.55 12 4C12 3.45 12.45 3 13 3H19C20.11 3 21 3.9 21 5V19C21 20.1 20.1 21 19 21H5C3.9 21 3 20.1 3 19V13C3 12.45 3.45 12 4 12C4.55 12 5 12.45 5 13V18C5 18.55 5.45 19 6 19ZM10 4C10 4.55 9.55 5 9 5H6.41L15.54 14.13C15.93 14.52 15.93 15.15 15.54 15.54C15.15 15.93 14.52 15.93 14.13 15.54L5 6.41V9C5 9.55 4.55 10 4 10C3.45 10 3 9.55 3 9V4C3 3.44772 3.44772 3 4 3H9C9.55 3 10 3.45 10 4Z" fill="#737D8C"/>
</svg>

After

Width:  |  Height:  |  Size: 580 B

View file

@ -201,6 +201,13 @@ export default class CallView extends React.Component<IProps, IState> {
}); });
}; };
private onExpandClick = () => {
dis.dispatch({
action: 'view_room',
room_id: this.state.call.roomId,
});
};
private onControlsHideTimer = () => { private onControlsHideTimer = () => {
this.controlsHideTimer = null; this.controlsHideTimer = null;
this.setState({ this.setState({
@ -355,7 +362,7 @@ export default class CallView extends React.Component<IProps, IState> {
if (this.state.call.type === CallType.Video) { if (this.state.call.type === CallType.Video) {
// if we're fullscreen, we don't want to set a maxHeight on the video element. // if we're fullscreen, we don't want to set a maxHeight on the video element.
const maxVideoHeight = getFullScreenElement() ? null : this.props.maxVideoHeight; const maxVideoHeight = getFullScreenElement() ? null : this.props.maxVideoHeight;
contentView = <div className="mx_CallView_video" ref={this.contentRef}> contentView = <div className="mx_CallView_video" ref={this.contentRef} onMouseMove={this.onMouseMove}>
<VideoFeed type={VideoFeedType.Remote} call={this.state.call} onResize={this.props.onResize} <VideoFeed type={VideoFeedType.Remote} call={this.state.call} onResize={this.props.onResize}
maxHeight={maxVideoHeight} maxHeight={maxVideoHeight}
/> />
@ -378,14 +385,22 @@ export default class CallView extends React.Component<IProps, IState> {
let myClassName; let myClassName;
let fullScreenButton; let fullScreenButton;
if (this.state.call.type === CallType.Video) { if (this.state.call.type === CallType.Video && this.props.room) {
fullScreenButton = <div className="mx_CallView_header_control_fullscreen" fullScreenButton = <div className="mx_CallView_header_button mx_CallView_header_button_fullscreen"
onClick={this.onFullscreenClick} title={_t("Fill screen")} onClick={this.onFullscreenClick} title={_t("Fill screen")}
/>; />;
} }
let expandButton;
if (!this.props.room) {
expandButton = <div className="mx_CallView_header_button mx_CallView_header_button_expand"
onClick={this.onExpandClick} title={_t("Return to call")}
/>;
}
const headerControls = <div className="mx_CallView_header_controls"> const headerControls = <div className="mx_CallView_header_controls">
{fullScreenButton} {fullScreenButton}
{expandButton}
</div>; </div>;
let header: React.ReactNode; let header: React.ReactNode;