Skip to content

[Bug Report][3.8.3] Expanding VMenu no longer fully repositions into browser view #21551

@jertel

Description

@jertel

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.

3.8.2:
Image

3.8.3:
Image

Metadata

Metadata

Assignees

Labels

C: VMenuT: bugFunctionality that does not work as intended/expectedT: regressionSomething that used to work but we broke

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions