diff --git a/crates/notedeck_notebook/src/lib.rs b/crates/notedeck_notebook/src/lib.rs index 94cc806a..b95701af 100644 --- a/crates/notedeck_notebook/src/lib.rs +++ b/crates/notedeck_notebook/src/lib.rs @@ -183,36 +183,33 @@ fn node_ui(ui: &mut egui::Ui, node: &Node) -> egui::Response { fn text_node_ui(ui: &mut egui::Ui, node: &TextNode) -> egui::Response { node_box_ui(ui, node.node(), |ui| { - egui::ScrollArea::vertical().show(ui, |ui| { - ui.with_layout(egui::Layout::left_to_right(Align::Min), |ui| { - ui.add(Label::new(node.text()).wrap_mode(TextWrapMode::Wrap)) - }); - }); + egui::ScrollArea::vertical() + .show(ui, |ui| { + ui.with_layout(egui::Layout::left_to_right(Align::Min), |ui| { + ui.add(Label::new(node.text()).wrap_mode(TextWrapMode::Wrap)) + }) + }) + .inner + .response }) } fn file_node_ui(ui: &mut egui::Ui, node: &FileNode) -> egui::Response { - node_box_ui(ui, node.node(), |ui| { - ui.label("file node"); - }) + node_box_ui(ui, node.node(), |ui| ui.label("file node")) } fn link_node_ui(ui: &mut egui::Ui, node: &LinkNode) -> egui::Response { - node_box_ui(ui, node.node(), |ui| { - ui.label("link node"); - }) + node_box_ui(ui, node.node(), |ui| ui.label("link node")) } fn group_node_ui(ui: &mut egui::Ui, node: &GroupNode) -> egui::Response { - node_box_ui(ui, node.node(), |ui| { - ui.label("group node"); - }) + node_box_ui(ui, node.node(), |ui| ui.label("group node")) } fn node_box_ui( ui: &mut egui::Ui, node: &GenericNode, - contents: impl FnOnce(&mut egui::Ui), + contents: impl FnOnce(&mut egui::Ui) -> egui::Response, ) -> egui::Response { let pos = node_rect(node); @@ -225,7 +222,11 @@ fn node_box_ui( 2.0, ui.visuals().noninteractive().bg_stroke.color, )) - .show(ui, contents) + .show(ui, |ui| { + let rect = ui.available_rect_before_wrap(); + ui.allocate_at_least(ui.available_size(), egui::Sense::click()); + ui.put(rect, |ui: &mut egui::Ui| contents(ui)); + }) .response }) }