fix(VMenu): hover stuck open when mouse exits page #5844
Merged
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.
Description
It's possible for a mouseLeaveEvent to finish closing a menu before the corresponding mouseEnterEvent's animation frame has run, resulting in a stuck open menu. I have added some logic to double check at and make sure the menu is still active at the time the animation frame runs.
In this situation, isActive has been reset to false between the time runDelay(open) was called and when we were provisioned this animation frame, sync up hasJustFocused to false and do a no-op assign to isContentActive which doesn't trigger the watcher. Tried to minimize branching to match project style.
Motivation and Context
This is a fix for #5843, the issue is fully documented over there including related codepen.
How Has This Been Tested?
I have tested the hover functionality of v-menu and v-tooltip, including edge cases such as right clicking the mouse and exiting the page, and both are now working correctly.
Markup:
Types of changes
Checklist:
master
for bug fixes and documentation updates,dev
for new features and breaking changes).