diff --git a/nih_plug_egui/src/widgets/generic_ui.rs b/nih_plug_egui/src/widgets/generic_ui.rs index 85b99ce7..f4a2dfa9 100644 --- a/nih_plug_egui/src/widgets/generic_ui.rs +++ b/nih_plug_egui/src/widgets/generic_ui.rs @@ -41,24 +41,19 @@ pub fn create( setter: &ParamSetter, widget: impl ParamWidget, ) { - let param_map = params.param_map(); - let param_ids = params.param_ids(); - let padding = Vec2::splat(ui.text_style_height(&TextStyle::Body) * 0.2); egui::containers::ScrollArea::vertical() // Take up all remaining space, use a wrapper container to adjust how much space that is .auto_shrink([false, false]) .show(ui, |ui| { - for (widget_idx, id) in param_ids.into_iter().enumerate() { - let param = param_map[&id]; - + for (widget_idx, (_, param_ptr, _)) in params.param_map().into_iter().enumerate() { // This list looks weird without a little padding if widget_idx > 0 { ui.allocate_space(padding); } - ui.label(unsafe { param.name() }); - unsafe { widget.add_widget_raw(ui, ¶m, setter) }; + ui.label(unsafe { param_ptr.name() }); + unsafe { widget.add_widget_raw(ui, ¶m_ptr, setter) }; } }); } diff --git a/nih_plug_iced/src/widgets/generic_ui.rs b/nih_plug_iced/src/widgets/generic_ui.rs index 020d33f6..c041b750 100644 --- a/nih_plug_iced/src/widgets/generic_ui.rs +++ b/nih_plug_iced/src/widgets/generic_ui.rs @@ -166,18 +166,15 @@ where .padding(padding) .align_items(Alignment::Center); - let param_map = self.params.param_map(); - let param_ids = self.params.param_ids(); - // Make sure we already have widget state for each widget - for param_ptr in param_map.values() { + let param_map = self.params.param_map(); + for (_, param_ptr, _) in ¶m_map { if !widget_state.contains_key(param_ptr) { widget_state.insert(*param_ptr, Default::default()); } } - for param_id in param_ids { - let param_ptr = param_map[¶m_id]; + for (_, param_ptr, _) in param_map { // SAFETY: We only borrow each item once, and the plugin framework statically asserted // that parameter indices are unique and this widget state cannot outlive this // function