Skip to content

FIX: filament vendor submenu never opens when each group has one preset - #12094

Open
joranv1 wants to merge 1 commit into
bambulab:masterfrom
joranv1:master
Open

FIX: filament vendor submenu never opens when each group has one preset#12094
joranv1 wants to merge 1 commit into
bambulab:masterfrom
joranv1:master

Conversation

@joranv1

@joranv1 joranv1 commented Aug 31, 2026

Copy link
Copy Markdown

Hovering a category row (Custom, Bambu, Generic, ...) in the Project Filaments dropdown is supposed to open a submenu listing that vendor's presets. Often it does nothing at all.

DropDown::hoverIndex() short-circuits on count == items.size() and returns the row index unchanged, assuming equal counts mean nothing is grouped. That does not hold when every group contains exactly one item: each group still collapses to a single row, so the counts match while grouping is present. The -i-2 group-row encoding is then never produced and mouseMove() cannot open the submenu.

This is why it looks intermittent. It depends only on the preset list: as soon as one vendor has two or more compatible presets the counts differ, the shortcut is skipped, and every submenu works again.

Track has_groups in messureSize() next to count and require it to be false before taking the shortcut. selectedItem() had the same flaw, mispositioning the check mark in the affected lists. Also guard the subDropDown dereference in mouseMove(), which this makes reachable.

Hovering a category row (Custom, Bambu, Generic, ...) in the Project
Filaments dropdown is supposed to open a submenu listing that vendor's
presets. Often it does nothing at all.

DropDown::hoverIndex() short-circuits on `count == items.size()` and
returns the row index unchanged, assuming equal counts mean nothing is
grouped. That does not hold when every group contains exactly one item:
each group still collapses to a single row, so the counts match while
grouping is present. The -i-2 group-row encoding is then never produced
and mouseMove() cannot open the submenu.

This is why it looks intermittent. It depends only on the preset list --
as soon as one vendor has two or more compatible presets the counts
differ, the shortcut is skipped, and every submenu works again.

Track has_groups in messureSize() next to count and require it to be
false before taking the shortcut. selectedItem() had the same flaw,
mispositioning the check mark in the affected lists. Also guard the
subDropDown dereference in mouseMove(), which this makes reachable.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant