From b7763c3e46d7a84b05fa09dd658367c5fc43862a Mon Sep 17 00:00:00 2001 From: ggurdin Date: Mon, 22 Dec 2025 13:35:00 -0500 Subject: [PATCH] fix: change how screen width metric changes are tracked --- .../toolbar/message_selection_overlay.dart | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/lib/pangea/toolbar/message_selection_overlay.dart b/lib/pangea/toolbar/message_selection_overlay.dart index 376db6695..20a158ed3 100644 --- a/lib/pangea/toolbar/message_selection_overlay.dart +++ b/lib/pangea/toolbar/message_selection_overlay.dart @@ -55,7 +55,7 @@ class MessageSelectionOverlay extends StatefulWidget { } class MessageOverlayController extends State - with SingleTickerProviderStateMixin, WidgetsBindingObserver { + with SingleTickerProviderStateMixin { Event get event => widget._event; PangeaTokenText? _selectedSpan; @@ -70,6 +70,7 @@ class MessageOverlayController extends State selectModeController.selectedMode; late PracticeController practiceController; + double? screenWidth; ///////////////////////////////////// /// Lifecycle @@ -78,7 +79,6 @@ class MessageOverlayController extends State @override void initState() { super.initState(); - WidgetsBinding.instance.addObserver(this); selectModeController = SelectModeController(pangeaMessageEvent); practiceController = PracticeController(pangeaMessageEvent); _initializeTokensAndMode(); @@ -88,9 +88,14 @@ class MessageOverlayController extends State } @override - void didChangeMetrics() { - super.didChangeMetrics(); - widget.chatController.clearSelectedEvents(); + void didChangeDependencies() { + super.didChangeDependencies(); + final newWidth = MediaQuery.widthOf(context); + if (screenWidth != null && screenWidth != newWidth) { + widget.chatController.clearSelectedEvents(); + return; + } + screenWidth = newWidth; } @override @@ -98,7 +103,6 @@ class MessageOverlayController extends State WidgetsBinding.instance.addPostFrameCallback( (_) => widget.chatController.clearSelectedEvents(), ); - WidgetsBinding.instance.removeObserver(this); selectModeController.dispose(); practiceController.dispose(); selectedTokenNotifier.dispose();