From 48133cdac3fa9e97b2a2b11afdda777910212820 Mon Sep 17 00:00:00 2001 From: Jonathan Johnson Date: Fri, 26 Jul 2024 08:59:23 -0700 Subject: [PATCH] Fixing an edge case in computing tab order Removing widgets would affect the visual order, and sometimes nodes just aren't available anymore. It might be that this should be cleaned up more aggressively during widget removal, but by ignoring the removed nodes, the code just becomes more resilliant to similar edge cases in the future. --- src/tree.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/tree.rs b/src/tree.rs index dde860a..1fdfa20 100644 --- a/src/tree.rs +++ b/src/tree.rs @@ -181,7 +181,7 @@ impl Tree { let mut index = 0; while index < unordered.len() { - let layout = match &data.nodes[unordered[index]].layout { + let layout = match data.nodes.get(unordered[index]).and_then(|n| n.layout) { Some(layout) if layout.size.width > 0 && layout.size.height > 0 => layout, _ => { unordered.remove(index);