modify: fix OverlayEntry can't be removed correctly while window size changed#28
Open
Switernal wants to merge 2 commits intocb-cloud:mainfrom
Open
modify: fix OverlayEntry can't be removed correctly while window size changed#28Switernal wants to merge 2 commits intocb-cloud:mainfrom
Switernal wants to merge 2 commits intocb-cloud:mainfrom
Conversation
LCOV of commit
|
LCOV of commit
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
I found a problem: if I change window size on destop, the previous OverlayEntry can't be removed from
Navigator.of(context).overlay correctly.I checked and found the problem is that while window size changed, the
InAppNotificationwill be rebuilt, and then the_VsyncProvideris rebuilt. However, thebuild()method of__VsyncProviderStatereturns a_NotificationController(), where the_NotificationStateis created.Which means, while window size changed, the previous
_NotificationStateis missed afterInAppNotificationrebuilt , with the OverlayEntry missed.So I choose to save
_NotificationControllerin__VsyncProviderState. Before_VsyncProvideris rebuilt, the previous OverlayEntry can removed correctly.Also, I confirm that this package can work well with flutter 3.10.6 and dart 3.0.6, so I changed dart SDK version to '<4.0.0'.