mirror of
https://github.com/aljazceru/notedeck.git
synced 2025-12-18 17:14:21 +01:00
notebook: fix node sizes
make sure we always allocate the correct amount of space, even if we use less. Signed-off-by: William Casarin <jb55@jb55.com>
This commit is contained in:
@@ -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
|
||||
})
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user