From d96298080143d8226d8d9a86ced8961d5aa64d74 Mon Sep 17 00:00:00 2001 From: Kelrap Date: Wed, 31 Jul 2024 12:34:18 -0400 Subject: [PATCH] Fix toolbar not closing in all situations --- lib/pages/chat/chat.dart | 3 +++ lib/pangea/widgets/chat/message_toolbar.dart | 12 ++++++++++-- lib/pangea/widgets/chat/overlay_header.dart | 5 +++-- 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/lib/pages/chat/chat.dart b/lib/pages/chat/chat.dart index 989c1a088..93e7f80ec 100644 --- a/lib/pages/chat/chat.dart +++ b/lib/pages/chat/chat.dart @@ -885,6 +885,9 @@ class ChatController extends State } void copyEventsAction() { + // #Pangea + MatrixState.pAnyState.closeOverlay(); + // Pangea# Clipboard.setData(ClipboardData(text: _getSelectedEventString())); setState(() { showEmojiPicker = false; diff --git a/lib/pangea/widgets/chat/message_toolbar.dart b/lib/pangea/widgets/chat/message_toolbar.dart index bac8e58eb..75a4c660d 100644 --- a/lib/pangea/widgets/chat/message_toolbar.dart +++ b/lib/pangea/widgets/chat/message_toolbar.dart @@ -47,6 +47,11 @@ class ToolbarDisplayController { this.previousEvent, }); + void closeToolbar() { + controller.clearSelectedEvents(); + MatrixState.pAnyState.closeOverlay(); + } + void setToolbar() { toolbar ??= MessageToolbar( textSelection: MessageTextSelection(), @@ -90,13 +95,16 @@ class ToolbarDisplayController { mainAxisAlignment: MainAxisAlignment.spaceBetween, mainAxisSize: MainAxisSize.max, children: [ - OverlayHeader(controller: controller), + OverlayHeader( + controller: controller, + closeToolbar: closeToolbar, + ), const SizedBox( height: 7, ), Container( constraints: BoxConstraints( - maxHeight: MediaQuery.sizeOf(context).height * .72, + maxHeight: MediaQuery.sizeOf(context).height * .7, ), child: Column( mainAxisSize: MainAxisSize.min, diff --git a/lib/pangea/widgets/chat/overlay_header.dart b/lib/pangea/widgets/chat/overlay_header.dart index f6b686c6b..cc90f218b 100644 --- a/lib/pangea/widgets/chat/overlay_header.dart +++ b/lib/pangea/widgets/chat/overlay_header.dart @@ -1,6 +1,5 @@ import 'package:fluffychat/pages/chat/chat.dart'; import 'package:fluffychat/pages/chat/chat_app_bar_title.dart'; -import 'package:fluffychat/widgets/matrix.dart'; import 'package:flutter/material.dart'; import 'package:flutter_gen/gen_l10n/l10n.dart'; import 'package:matrix/matrix.dart'; @@ -9,9 +8,11 @@ enum _EventContextAction { info, report } class OverlayHeader extends StatelessWidget { ChatController controller; + Function closeToolbar; OverlayHeader({ required this.controller, + required this.closeToolbar, super.key, }); @@ -26,7 +27,7 @@ class OverlayHeader extends StatelessWidget { ), leading: IconButton( icon: const Icon(Icons.close), - onPressed: MatrixState.pAnyState.closeOverlay, + onPressed: () => closeToolbar(), tooltip: L10n.of(context)!.close, color: Theme.of(context).colorScheme.primary, ),