From b8c25cb2d78f08b61ae477924572cf9bb7ea7ce6 Mon Sep 17 00:00:00 2001 From: ggurdin <46800240+ggurdin@users.noreply.github.com> Date: Mon, 29 Dec 2025 15:34:26 -0500 Subject: [PATCH] fix: don't close word card on click (#4967) --- .../toolbar/layout/over_message_overlay.dart | 123 +++++++++--------- 1 file changed, 60 insertions(+), 63 deletions(-) diff --git a/lib/pangea/toolbar/layout/over_message_overlay.dart b/lib/pangea/toolbar/layout/over_message_overlay.dart index 98e3d8fd6..b32f9a0d8 100644 --- a/lib/pangea/toolbar/layout/over_message_overlay.dart +++ b/lib/pangea/toolbar/layout/over_message_overlay.dart @@ -24,73 +24,70 @@ class OverMessageOverlay extends StatelessWidget { left: controller.messageLeftOffset ?? 0.0, right: controller.messageRightOffset ?? 0.0, ), - child: GestureDetector( - onTap: controller.widget.chatController.clearSelectedEvents, - child: SingleChildScrollView( - controller: controller.scrollController, - child: Column( - crossAxisAlignment: controller.ownMessage - ? CrossAxisAlignment.end - : CrossAxisAlignment.start, - mainAxisSize: MainAxisSize.min, - children: [ - if (!controller.shouldScroll) ...[ - WordCardSwitcher(controller: controller), - const SizedBox(height: 4.0), - ] else - AnimatedContainer( - duration: FluffyThemes.animationDuration, - height: controller.overheadContentHeight, - ), - CompositedTransformTarget( - link: MatrixState.pAnyState - .layerLinkAndKey( - 'overlay_message_${controller.widget.event.eventId}', - ) - .link, - child: ValueListenableBuilder( - valueListenable: - controller.widget.overlayController.selectedMode, - builder: (context, mode, __) { - return OverlayCenterContent( - event: controller.widget.event, - messageHeight: mode != SelectMode.emoji - ? controller.originalMessageSize.height - : null, - messageWidth: controller.widget.overlayController - .selectModeController.isShowingExtraContent - ? max(controller.originalMessageSize.width, 150) - : controller.originalMessageSize.width, - overlayController: controller.widget.overlayController, - chatController: controller.widget.chatController, - nextEvent: controller.widget.nextEvent, - prevEvent: controller.widget.prevEvent, - hasReactions: controller.hasReactions, - isTransitionAnimation: true, - readingAssistanceMode: controller.readingAssistanceMode, - overlayKey: - 'overlay_message_${controller.widget.event.eventId}', - ); - }, - ), - ), + child: SingleChildScrollView( + controller: controller.scrollController, + child: Column( + crossAxisAlignment: controller.ownMessage + ? CrossAxisAlignment.end + : CrossAxisAlignment.start, + mainAxisSize: MainAxisSize.min, + children: [ + if (!controller.shouldScroll) ...[ + WordCardSwitcher(controller: controller), const SizedBox(height: 4.0), - SelectModeButtons( - controller: controller.widget.chatController, - overlayController: controller.widget.overlayController, - launchPractice: () => controller.launchPractice( - ReadingAssistanceMode.practiceMode, - ), - ), + ] else AnimatedContainer( duration: FluffyThemes.animationDuration, - height: max(0, controller.spaceBelowContent), - width: controller.mediaQuery!.size.width - - controller.columnWidth - - (controller.showDetails ? FluffyThemes.columnWidth : 0), + height: controller.overheadContentHeight, ), - ], - ), + CompositedTransformTarget( + link: MatrixState.pAnyState + .layerLinkAndKey( + 'overlay_message_${controller.widget.event.eventId}', + ) + .link, + child: ValueListenableBuilder( + valueListenable: + controller.widget.overlayController.selectedMode, + builder: (context, mode, __) { + return OverlayCenterContent( + event: controller.widget.event, + messageHeight: mode != SelectMode.emoji + ? controller.originalMessageSize.height + : null, + messageWidth: controller.widget.overlayController + .selectModeController.isShowingExtraContent + ? max(controller.originalMessageSize.width, 150) + : controller.originalMessageSize.width, + overlayController: controller.widget.overlayController, + chatController: controller.widget.chatController, + nextEvent: controller.widget.nextEvent, + prevEvent: controller.widget.prevEvent, + hasReactions: controller.hasReactions, + isTransitionAnimation: true, + readingAssistanceMode: controller.readingAssistanceMode, + overlayKey: + 'overlay_message_${controller.widget.event.eventId}', + ); + }, + ), + ), + const SizedBox(height: 4.0), + SelectModeButtons( + controller: controller.widget.chatController, + overlayController: controller.widget.overlayController, + launchPractice: () => controller.launchPractice( + ReadingAssistanceMode.practiceMode, + ), + ), + AnimatedContainer( + duration: FluffyThemes.animationDuration, + height: max(0, controller.spaceBelowContent), + width: controller.mediaQuery!.size.width - + controller.columnWidth - + (controller.showDetails ? FluffyThemes.columnWidth : 0), + ), + ], ), ), ),