-
-
Notifications
You must be signed in to change notification settings - Fork 7.1k
Description
Environment
Vuetify Version: 3.8.3
Last working version: 3.8.2
Vue Version: 3.5.16
Browsers: Chrome 135.0.0.0
OS: Linux x86_64
Steps to reproduce
In the reproduction link sample, click a "Clickable" item at the bottom edge of the window to popup the menu. Then click the Submenu item to expand the menu.
Expected Behavior
VMenu repositions itself higher to allow the expanded menu items to remain in view.
Actual Behavior
VMenu starts shifting upwards for a few animation frames but then stops, leaving the expanded menu items only partially visible.
Reproduction Link
https://play.vuetifyjs.com/#...
Other comments
I suspect the PR #21300 introduced an unintended issue that causes elements to incorrectly stop repositioning themselves. For example, I can pop up a VMenu on a target item near the bottom of the browser window and the VMenu will position itself sufficiently above the target element to avoid being obscured by the window border. If that VMenu has an expanded item group and I then click that group to expand it, the menu height grows to fit the new sub menu items. In 3.8.2 this shifted the menu further up the window to fit in the new elements. Starting in 3.8.3 the menu starts to shift upwards to accommodate the new items but then abruptly stops, leaving the new items cut off from the bottom edge of the window.
If I comment out the following line from the referenced PR:
if (result) flipped.push(result.flipped)
then the functionality returns and the menu is fully visible again. Alternatively, if I make the flipped
CircularBuffer sufficiently large (and adjust the deepEquals(...)
params accordingly, that also fixes it.