Fix View Options popup not responding to clicks

Remove duplicate popup rendering from render_vertical_tabs_panel.
The popup was rendered both inside the panel's stack AND at the
workspace level in a Dismiss overlay, causing event dispatch conflicts
due to shared MouseStateHandle instances between the two identical
popup trees.
This commit is contained in:
Ryan Ward
2026-06-23 15:28:59 -05:00
parent 5ea378a38d
commit 148c97eab1
49 changed files with 1507 additions and 419 deletions
+4 -17
View File
@@ -1448,23 +1448,10 @@ fn render_vertical_tabs_panel(
.with_child(Shrinkable::new(1., scrollable_groups).finish())
.finish();
let panel_with_popup: Box<dyn Element> = if state.show_settings_popup {
let popup = render_settings_popup(state, app);
let mut stack = Stack::new().with_child(panel_content);
stack.add_positioned_overlay_child(
popup,
OffsetPositioning::offset_from_save_position_element(
VERTICAL_TABS_SETTINGS_BUTTON_POSITION_ID,
vec2f(0., 4.),
PositionedElementOffsetBounds::WindowByPosition,
PositionedElementAnchor::BottomLeft,
ChildAnchor::TopLeft,
),
);
stack.finish()
} else {
panel_content
};
// Note: the settings popup is rendered at the workspace level (in a Dismiss overlay)
// rather than here, to ensure proper click-outside-to-dismiss behavior and avoid
// event dispatch conflicts from duplicate popup rendering with shared mouse states.
let panel_with_popup: Box<dyn Element> = panel_content;
let drag_side = match side {
super::PanelPosition::Left => DragBarSide::Right,