From 862830a8784fdfb6f71d3fbbc4db2eeebc42a24d Mon Sep 17 00:00:00 2001 From: HuyNguyen Date: Wed, 30 Aug 2023 16:32:12 +0700 Subject: [PATCH] fixup! fixup! fixup! TW-508: Keep horizontal when open context popup menu --- lib/pages/chat/chat.dart | 7 ++++++- lib/pages/chat/events/message_content.dart | 5 +++-- lib/pages/chat/events/message_content_style.dart | 13 +++++++------ .../chat/events/sending_image_info_widget.dart | 4 ++-- lib/pages/chat/events/sending_video_widget.dart | 4 ++-- lib/pages/chat/events/video_player.dart | 2 +- 6 files changed, 21 insertions(+), 14 deletions(-) diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index 7d48ab40c7..8cf9f577a8 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -1318,7 +1318,8 @@ class ChatController extends State } void onHover(bool isHovered, int index, Event event) { - if (timeline!.events[index - 1].eventId == event.eventId && + if (index > 0 && + timeline!.events[index - 1].eventId == event.eventId && responsive.isDesktop(context) && !selectMode && !openingPopupMenu.value) { @@ -1398,15 +1399,19 @@ class ChatController extends State switch (action) { case ChatContextMenuActions.select: onSelectMessage(event); + break; case ChatContextMenuActions.copyMessage: onSelectMessage(event); copyEventsAction(); + break; case ChatContextMenuActions.pinMessage: onSelectMessage(event); pinEvent(); + break; case ChatContextMenuActions.forward: onSelectMessage(event); forwardEventsAction(); + break; } } diff --git a/lib/pages/chat/events/message_content.dart b/lib/pages/chat/events/message_content.dart index 6b056ebb93..960a7979ff 100644 --- a/lib/pages/chat/events/message_content.dart +++ b/lib/pages/chat/events/message_content.dart @@ -82,7 +82,8 @@ class MessageContent extends StatelessWidget { leading: CloseButton(onPressed: Navigator.of(context).pop), title: Text( l10n.whyIsThisMessageEncrypted, - style: TextStyle(fontSize: MessageContentStyle.appBarFontSize), + style: + const TextStyle(fontSize: MessageContentStyle.appBarFontSize), ), ), body: SafeArea( @@ -426,7 +427,7 @@ class _MessageImageBuilder extends StatelessWidget { return ImageBubble( event, width: MessageContentStyle.imageBubbleWidth(context), - height: MessageContentStyle.imageBubbleHeight, + height: MessageContentStyle.imageBubbleHeightForWeb, fit: BoxFit.cover, onTapSelectMode: onTapSelectMode, onTapPreview: onTapPreview, diff --git a/lib/pages/chat/events/message_content_style.dart b/lib/pages/chat/events/message_content_style.dart index a0b6ba72ca..8071837912 100644 --- a/lib/pages/chat/events/message_content_style.dart +++ b/lib/pages/chat/events/message_content_style.dart @@ -5,17 +5,18 @@ import 'package:flutter/material.dart'; class MessageContentStyle { static ResponsiveUtils responsiveUtils = getIt.get(); - static int get maxLengthTextInline => 180; - static double get appBarFontSize => 16.0; + static const int maxLengthTextInline = 180; + static const double appBarFontSize = 16.0; + static double imageBubbleWidth(BuildContext context) { if (responsiveUtils.isDesktop(context)) { - return 500; + return imageBubbleHeightForWeb; } return 256; } - static double get imageBubbleHeight => 500; - static Color get backgroundColorButton => Colors.white.withAlpha(64); + static const double imageBubbleHeightForWeb = 500; + static Color backgroundColorButton = Colors.white.withAlpha(64); - static double get letterSpacingMessageContent => -0.15; + static const double letterSpacingMessageContent = -0.15; } diff --git a/lib/pages/chat/events/sending_image_info_widget.dart b/lib/pages/chat/events/sending_image_info_widget.dart index 939c01c4d5..3c0951a73f 100644 --- a/lib/pages/chat/events/sending_image_info_widget.dart +++ b/lib/pages/chat/events/sending_image_info_widget.dart @@ -71,8 +71,8 @@ class SendingImageInfoWidget extends StatelessWidget { child: Image.file( File(matrixFile.filePath!), width: MessageContentStyle.imageBubbleWidth(context), - height: MessageContentStyle.imageBubbleHeight, - cacheHeight: MessageContentStyle.imageBubbleHeight.toInt(), + height: MessageContentStyle.imageBubbleHeightForWeb, + cacheHeight: MessageContentStyle.imageBubbleHeightForWeb.toInt(), cacheWidth: MessageContentStyle.imageBubbleWidth(context).toInt(), fit: BoxFit.cover, filterQuality: FilterQuality.medium, diff --git a/lib/pages/chat/events/sending_video_widget.dart b/lib/pages/chat/events/sending_video_widget.dart index 7f6493e0f5..f5024f864c 100644 --- a/lib/pages/chat/events/sending_video_widget.dart +++ b/lib/pages/chat/events/sending_video_widget.dart @@ -131,7 +131,7 @@ class _SendingVideoWidgetState extends State if (imageWidth == null || imageHeight == null) { return ( MessageContentStyle.imageBubbleWidth(context), - MessageContentStyle.imageBubbleHeight + MessageContentStyle.imageBubbleHeightForWeb ); } @@ -140,7 +140,7 @@ class _SendingVideoWidgetState extends State if (imageWidth <= imageHeight) { return ( MessageContentStyle.imageBubbleWidth(context), - MessageContentStyle.imageBubbleHeight + MessageContentStyle.imageBubbleHeightForWeb ); } else { return ( diff --git a/lib/pages/chat/events/video_player.dart b/lib/pages/chat/events/video_player.dart index 96c200405b..b9f1fe10d0 100644 --- a/lib/pages/chat/events/video_player.dart +++ b/lib/pages/chat/events/video_player.dart @@ -111,7 +111,7 @@ class EventVideoPlayerState extends State { color: Colors.black, child: SizedBox( width: MessageContentStyle.imageBubbleWidth(context), - height: MessageContentStyle.imageBubbleHeight, + height: MessageContentStyle.imageBubbleHeightForWeb, child: chewieManager != null ? FittedBox( fit: BoxFit.contain,