Merge pull request #3152 from pangeachat/3147-reselect-message-causes-white-background-bug

chore: deselect events in message overlay dispose function
This commit is contained in:
ggurdin 2025-06-18 15:07:52 -04:00 committed by GitHub
commit fd1dd688ab
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 23 additions and 4 deletions

View file

@ -1651,6 +1651,13 @@ class ChatController extends State<ChatPageWithRoom>
showEmojiPicker = false;
});
}
void setSelectedEvent(Event event) {
setState(() {
selectedEvents.clear();
selectedEvents.add(event);
});
}
// Pangea#
void clearSingleSelectedEvent() {

View file

@ -109,8 +109,19 @@ class MessageOverlayController extends State<MessageSelectionOverlay>
@override
void initState() {
initializeTokensAndMode();
super.initState();
initializeTokensAndMode();
WidgetsBinding.instance.addPostFrameCallback(
(_) => widget.chatController.setSelectedEvent(event),
);
}
@override
void dispose() {
WidgetsBinding.instance.addPostFrameCallback(
(_) => widget.chatController.clearSelectedEvents(),
);
super.dispose();
}
Future<void> initializeTokensAndMode() async {

View file

@ -36,9 +36,10 @@ class OverlayHeaderState extends State<OverlayHeader> {
Widget build(BuildContext context) {
final l10n = L10n.of(context);
final theme = Theme.of(context);
final pinned = controller.room.pinnedEventIds.contains(
controller.selectedEvents.first.eventId,
);
final pinned = controller.selectedEvents.length == 1 &&
controller.room.pinnedEventIds.contains(
controller.selectedEvents.first.eventId,
);
return Container(
padding: const EdgeInsets.symmetric(horizontal: 10),
decoration: BoxDecoration(