Merge pull request #4930 from pangeachat/4924-selection-immediately-closing-on-ios

fix: change how screen width metric changes are tracked
This commit is contained in:
ggurdin 2025-12-22 13:35:35 -05:00 committed by GitHub
commit 25b6b1ad77
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -55,7 +55,7 @@ class MessageSelectionOverlay extends StatefulWidget {
}
class MessageOverlayController extends State<MessageSelectionOverlay>
with SingleTickerProviderStateMixin, WidgetsBindingObserver {
with SingleTickerProviderStateMixin {
Event get event => widget._event;
PangeaTokenText? _selectedSpan;
@ -70,6 +70,7 @@ class MessageOverlayController extends State<MessageSelectionOverlay>
selectModeController.selectedMode;
late PracticeController practiceController;
double? screenWidth;
/////////////////////////////////////
/// Lifecycle
@ -78,7 +79,6 @@ class MessageOverlayController extends State<MessageSelectionOverlay>
@override
void initState() {
super.initState();
WidgetsBinding.instance.addObserver(this);
selectModeController = SelectModeController(pangeaMessageEvent);
practiceController = PracticeController(pangeaMessageEvent);
_initializeTokensAndMode();
@ -88,9 +88,14 @@ class MessageOverlayController extends State<MessageSelectionOverlay>
}
@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<MessageSelectionOverlay>
WidgetsBinding.instance.addPostFrameCallback(
(_) => widget.chatController.clearSelectedEvents(),
);
WidgetsBinding.instance.removeObserver(this);
selectModeController.dispose();
practiceController.dispose();
selectedTokenNotifier.dispose();