From 9abde49c62dc8cb3085585293eb585e6f1e3749c Mon Sep 17 00:00:00 2001 From: dab246 Date: Mon, 15 Sep 2025 15:25:33 +0700 Subject: [PATCH] TF-4014 Fix copy and paste images is broken after going full screen --- .../composer/presentation/composer_controller.dart | 4 +++- .../composer/presentation/composer_view_web.dart | 10 +++++----- .../view/web/desktop_responsive_container_view.dart | 4 ++-- .../view/web/mobile_responsive_container_view.dart | 2 +- .../view/web/tablet_responsive_container_view.dart | 2 +- 5 files changed, 12 insertions(+), 10 deletions(-) diff --git a/lib/features/composer/presentation/composer_controller.dart b/lib/features/composer/presentation/composer_controller.dart index bfd9cfd63..ba69eb76b 100644 --- a/lib/features/composer/presentation/composer_controller.dart +++ b/lib/features/composer/presentation/composer_controller.dart @@ -2388,7 +2388,7 @@ class ComposerController extends BaseController required BuildContext context, required double maxWidth }) { - if (responsiveUtils.isMobile(context)) { + if (context.mounted && responsiveUtils.isMobile(context)) { maxWithEditor = maxWidth - 40; } else { maxWithEditor = maxWidth - 70; @@ -2418,6 +2418,8 @@ class ComposerController extends BaseController required UploadError uploadError }) { logError('ComposerController::handleOnPasteImageFailureAction: $uploadError'); + if (!context.mounted) return; + appToast.showToastErrorMessage( context, AppLocalizations.of(context).thisImageCannotBePastedIntoTheEditor); diff --git a/lib/features/composer/presentation/composer_view_web.dart b/lib/features/composer/presentation/composer_view_web.dart index 98f9db20e..ab331ef6f 100644 --- a/lib/features/composer/presentation/composer_view_web.dart +++ b/lib/features/composer/presentation/composer_view_web.dart @@ -240,7 +240,7 @@ class ComposerView extends GetWidget { ), Expanded( child: LayoutBuilder( - builder: (context, constraintsEditor) { + builder: (_, constraintsEditor) { return Stack( children: [ Column( @@ -364,7 +364,7 @@ class ComposerView extends GetWidget { } ), desktop: Obx(() => DesktopResponsiveContainerView( - childBuilder: (context, constraints) { + childBuilder: (_, constraints) { return GestureDetector( onTap: () => controller.clickOutsideComposer(context), child: Column(children: [ @@ -520,7 +520,7 @@ class ComposerView extends GetWidget { ), Expanded( child: LayoutBuilder( - builder: (context, constraintsEditor) { + builder: (_, constraintsEditor) { return Stack( children: [ Column( @@ -689,7 +689,7 @@ class ComposerView extends GetWidget { onChangeDisplayModeAction: controller.displayScreenTypeComposerAction, )), tablet: TabletResponsiveContainerView( - childBuilder: (context, constraints) { + childBuilder: (_, constraints) { return GestureDetector( onTap: () => controller.clickOutsideComposer(context), child: Column(children: [ @@ -843,7 +843,7 @@ class ComposerView extends GetWidget { ), Expanded( child: LayoutBuilder( - builder: (context, constraintsBody) { + builder: (_, constraintsBody) { return Stack( children: [ Column( diff --git a/lib/features/composer/presentation/view/web/desktop_responsive_container_view.dart b/lib/features/composer/presentation/view/web/desktop_responsive_container_view.dart index 569e3af24..d6fcbf132 100644 --- a/lib/features/composer/presentation/view/web/desktop_responsive_container_view.dart +++ b/lib/features/composer/presentation/view/web/desktop_responsive_container_view.dart @@ -56,7 +56,7 @@ class DesktopResponsiveContainerView extends StatelessWidget { height: composerManager.composerIdsQueue.length > 1 ? DesktopResponsiveContainerViewStyle.normalScreenMaxHeight : responsiveUtils.getSizeScreenHeight(context) * 0.85, - child: LayoutBuilder(builder: (context, constraints) => + child: LayoutBuilder(builder: (_, constraints) => PointerInterceptor( child: childBuilder.call(context, constraints), ) @@ -80,7 +80,7 @@ class DesktopResponsiveContainerView extends StatelessWidget { color: DesktopResponsiveContainerViewStyle.backgroundColor, width: maxWidth, height: maxHeight, - child: LayoutBuilder(builder: (context, constraints) => + child: LayoutBuilder(builder: (_, constraints) => PointerInterceptor( child: childBuilder.call(context, constraints) ) diff --git a/lib/features/composer/presentation/view/web/mobile_responsive_container_view.dart b/lib/features/composer/presentation/view/web/mobile_responsive_container_view.dart index 0efbe8513..b86f89897 100644 --- a/lib/features/composer/presentation/view/web/mobile_responsive_container_view.dart +++ b/lib/features/composer/presentation/view/web/mobile_responsive_container_view.dart @@ -15,7 +15,7 @@ class MobileResponsiveContainerView extends StatelessWidget { Widget build(BuildContext context) { return Scaffold( backgroundColor: MobileResponsiveContainerViewStyle.outSideBackgroundColor, - body: LayoutBuilder(builder: (context, constraints) => + body: LayoutBuilder(builder: (_, constraints) => PointerInterceptor( child: childBuilder.call(context, constraints) ) diff --git a/lib/features/composer/presentation/view/web/tablet_responsive_container_view.dart b/lib/features/composer/presentation/view/web/tablet_responsive_container_view.dart index 1263612d7..06caefcd9 100644 --- a/lib/features/composer/presentation/view/web/tablet_responsive_container_view.dart +++ b/lib/features/composer/presentation/view/web/tablet_responsive_container_view.dart @@ -30,7 +30,7 @@ class TabletResponsiveContainerView extends StatelessWidget { child: Container( color: TabletResponsiveContainerViewStyle.backgroundColor, width: TabletResponsiveContainerViewStyle.getWidth(context, _responsiveUtils), - child: LayoutBuilder(builder: (context, constraints) => + child: LayoutBuilder(builder: (_, constraints) => PointerInterceptor( child: childBuilder.call(context, constraints) )