From f15b22bd144ea283fe8eff55f3cf171335f1819b Mon Sep 17 00:00:00 2001 From: Jonathan Date: Mon, 20 Apr 2026 20:19:08 -0400 Subject: [PATCH 1/3] full-tab screenshare --- .../lib/ui/organisms/call_view/call_view.dart | 55 ++++++++++++++----- .../voip_fullscreen_stream_view.dart | 2 +- 2 files changed, 43 insertions(+), 14 deletions(-) diff --git a/commet/lib/ui/organisms/call_view/call_view.dart b/commet/lib/ui/organisms/call_view/call_view.dart index bd708cf6f..9cbdfc772 100644 --- a/commet/lib/ui/organisms/call_view/call_view.dart +++ b/commet/lib/ui/organisms/call_view/call_view.dart @@ -3,7 +3,6 @@ import 'package:commet/client/components/voip/voip_session.dart'; import 'package:commet/client/components/voip/voip_stream.dart'; import 'package:commet/client/room.dart'; import 'package:commet/config/layout_config.dart'; -import 'package:commet/ui/atoms/lightbox.dart'; import 'package:commet/ui/layout/bento.dart'; import 'package:commet/ui/organisms/call_view/voip_fullscreen_stream_view.dart'; import 'package:commet/ui/organisms/call_view/voip_stream_view.dart'; @@ -225,12 +224,27 @@ class _CallViewState extends State { widget.currentSession, borderColor: Colors.white, onFullscreen: () { - Lightbox.show(context, - aspectRatio: mainStream!.aspectRatio, - customWidget: VoipFullscreenStreamView( - session: widget.currentSession, - stream: mainStream!, - )); + Navigator.push( + context, + PageRouteBuilder( + pageBuilder: (context, animation, secondaryAnimation) => + Scaffold( + backgroundColor: Colors.black, + body: VoipFullscreenStreamView( + session: widget.currentSession, + stream: mainStream!, + ), + ), + transitionsBuilder: + (context, animation, secondaryAnimation, child) { + return FadeTransition( + opacity: animation, + child: child, + ); + }, + fullscreenDialog: true, + ), + ); }, fit: BoxFit.contain, key: ValueKey( @@ -260,12 +274,27 @@ class _CallViewState extends State { : BoxFit.cover, widget.currentSession, onFullscreen: () { - Lightbox.show(context, - aspectRatio: e.aspectRatio, - customWidget: VoipFullscreenStreamView( - session: widget.currentSession, - stream: e, - )); + Navigator.push( + context, + PageRouteBuilder( + pageBuilder: (context, animation, secondaryAnimation) => + Scaffold( + backgroundColor: Colors.black, + body: VoipFullscreenStreamView( + session: widget.currentSession, + stream: e, + ), + ), + transitionsBuilder: + (context, animation, secondaryAnimation, child) { + return FadeTransition( + opacity: animation, + child: child, + ); + }, + fullscreenDialog: true, + ), + ); }, ))) .toList()), diff --git a/commet/lib/ui/organisms/call_view/voip_fullscreen_stream_view.dart b/commet/lib/ui/organisms/call_view/voip_fullscreen_stream_view.dart index b0b95d8fd..70427cd2f 100644 --- a/commet/lib/ui/organisms/call_view/voip_fullscreen_stream_view.dart +++ b/commet/lib/ui/organisms/call_view/voip_fullscreen_stream_view.dart @@ -32,7 +32,6 @@ class _VoipFullscreenStreamViewState extends State { @override Widget build(BuildContext context) { return Stack( - alignment: Alignment.bottomCenter, children: [ LayoutBuilder( builder: (context, constraints) { @@ -41,6 +40,7 @@ class _VoipFullscreenStreamViewState extends State { widget.stream, widget.session, canFullscreen: false, + onFullscreen: () {Navigator.of(context).pop();}, ), onHover: (event) { final width = constraints.maxWidth; From 531bf8caad0bb9138401b1033f622b9dff842639 Mon Sep 17 00:00:00 2001 From: Jonathan Date: Mon, 20 Apr 2026 21:05:03 -0400 Subject: [PATCH 2/3] enable fullscreen button on full-app video stream --- commet/lib/ui/organisms/call_view/voip_stream_view.dart | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/commet/lib/ui/organisms/call_view/voip_stream_view.dart b/commet/lib/ui/organisms/call_view/voip_stream_view.dart index bb0e1a90f..ba1d78cc5 100644 --- a/commet/lib/ui/organisms/call_view/voip_stream_view.dart +++ b/commet/lib/ui/organisms/call_view/voip_stream_view.dart @@ -90,8 +90,7 @@ class _VoipStreamViewState extends State BoxDecoration(borderRadius: BorderRadius.circular(8)), child: buildDefault()), ), - if (widget.canFullscreen && - widget.stream.type == VoipStreamType.video || + if (widget.stream.type == VoipStreamType.video || widget.stream.type == VoipStreamType.screenshare) SizedBox( width: 40, From 720e58b0362a371bc829e86da911bfa59bdfc1a6 Mon Sep 17 00:00:00 2001 From: Airyzz <36567925+Airyzz@users.noreply.github.com> Date: Thu, 15 Oct 2026 21:02:22 +1030 Subject: [PATCH 3/3] tweak fullscreen animation --- .../lib/ui/organisms/call_view/call_view.dart | 25 ++++++------------- .../voip_fullscreen_stream_view.dart | 4 ++- .../organisms/call_view/voip_stream_view.dart | 1 - 3 files changed, 10 insertions(+), 20 deletions(-) diff --git a/commet/lib/ui/organisms/call_view/call_view.dart b/commet/lib/ui/organisms/call_view/call_view.dart index cbdee7762..573939193 100644 --- a/commet/lib/ui/organisms/call_view/call_view.dart +++ b/commet/lib/ui/organisms/call_view/call_view.dart @@ -4,6 +4,7 @@ import 'package:commet/client/components/voip/voip_stream.dart'; import 'package:commet/client/room.dart'; import 'package:commet/config/layout_config.dart'; import 'package:commet/ui/layout/bento.dart'; +import 'package:commet/ui/navigation/navigation_utils.dart'; import 'package:commet/ui/organisms/call_view/voip_fullscreen_stream_view.dart'; import 'package:commet/ui/organisms/call_view/voip_stream_view.dart'; import 'package:commet/utils/animation/ring_shaker.dart'; @@ -279,26 +280,14 @@ class _CallViewState extends State { : BoxFit.cover, widget.currentSession, onFullscreen: () { - Navigator.push( + NavigationUtils.navigateTo( context, - PageRouteBuilder( - pageBuilder: - (context, animation, secondaryAnimation) => - Scaffold( - backgroundColor: Colors.black, - body: VoipFullscreenStreamView( - session: widget.currentSession, - stream: e, - ), + Scaffold( + backgroundColor: Colors.black, + body: VoipFullscreenStreamView( + session: widget.currentSession, + stream: e, ), - transitionsBuilder: (context, animation, - secondaryAnimation, child) { - return FadeTransition( - opacity: animation, - child: child, - ); - }, - fullscreenDialog: true, ), ); }, diff --git a/commet/lib/ui/organisms/call_view/voip_fullscreen_stream_view.dart b/commet/lib/ui/organisms/call_view/voip_fullscreen_stream_view.dart index 70427cd2f..5265488c9 100644 --- a/commet/lib/ui/organisms/call_view/voip_fullscreen_stream_view.dart +++ b/commet/lib/ui/organisms/call_view/voip_fullscreen_stream_view.dart @@ -40,7 +40,9 @@ class _VoipFullscreenStreamViewState extends State { widget.stream, widget.session, canFullscreen: false, - onFullscreen: () {Navigator.of(context).pop();}, + onFullscreen: () { + Navigator.of(context).pop(); + }, ), onHover: (event) { final width = constraints.maxWidth; diff --git a/commet/lib/ui/organisms/call_view/voip_stream_view.dart b/commet/lib/ui/organisms/call_view/voip_stream_view.dart index 05bba9685..a908774b3 100644 --- a/commet/lib/ui/organisms/call_view/voip_stream_view.dart +++ b/commet/lib/ui/organisms/call_view/voip_stream_view.dart @@ -93,7 +93,6 @@ class _VoipStreamViewState extends State BoxDecoration(borderRadius: BorderRadius.circular(8)), child: buildDefault()), ), - if (preferences.developerMode.value) Align( alignment: AlignmentGeometry.topLeft,