diff --git a/core/src/manager/tabs.rs b/core/src/manager/tabs.rs index 33d978cc..01d09cf7 100644 --- a/core/src/manager/tabs.rs +++ b/core/src/manager/tabs.rs @@ -33,7 +33,11 @@ impl Tabs { } pub fn switch(&mut self, idx: isize, rel: bool) -> bool { - let idx = if rel { self.absolute(idx) } else { idx as usize }; + let idx = if rel { + (self.idx as isize + idx).rem_euclid(self.items.len() as isize) as usize + } else { + idx as usize + }; if idx == self.idx || idx >= self.items.len() { return false;