From 5f75a98cb85b0e67be505a319f2bd60c17fa8bfe Mon Sep 17 00:00:00 2001 From: John Gallagher Date: Wed, 12 Jun 2024 13:43:35 -0400 Subject: [PATCH] Fix underflow in wicket in a cross-screen interaction (#5884) Closes #5877 (see https://github.com/oxidecomputer/omicron/issues/5877#issuecomment-2163349194 for the reproduction steps) --- wicket/src/state/rack.rs | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/wicket/src/state/rack.rs b/wicket/src/state/rack.rs index 67e7d9478c..3fbe4f762b 100644 --- a/wicket/src/state/rack.rs +++ b/wicket/src/state/rack.rs @@ -102,13 +102,8 @@ impl RackState { pub fn left_or_right(&mut self) { match self.selected { ComponentId::Sled(i) => { - if self.left_column { - self.left_column = false; - self.selected = ComponentId::Sled(i + 1); - } else { - self.left_column = true; - self.selected = ComponentId::Sled(i - 1); - } + self.selected = ComponentId::Sled(i ^ 1); + self.set_column(); } _ => (), }