utilities/Tabbed: send VisibilityChange event on changing tab
parent
08af46f5ef
commit
eb8d29813c
|
@ -1305,7 +1305,9 @@ impl Component for Tabbed {
|
||||||
}
|
}
|
||||||
UIEvent::Input(Key::Alt(no)) if *no >= '1' && *no <= '9' => {
|
UIEvent::Input(Key::Alt(no)) if *no >= '1' && *no <= '9' => {
|
||||||
let no = *no as usize - '1' as usize;
|
let no = *no as usize - '1' as usize;
|
||||||
if no < self.children.len() {
|
if no < self.children.len() && self.cursor_pos != no % self.children.len() {
|
||||||
|
self.children[self.cursor_pos]
|
||||||
|
.process_event(&mut UIEvent::VisibilityChange(false), context);
|
||||||
self.cursor_pos = no % self.children.len();
|
self.cursor_pos = no % self.children.len();
|
||||||
let mut children_maps = self.children[self.cursor_pos].get_shortcuts(context);
|
let mut children_maps = self.children[self.cursor_pos].get_shortcuts(context);
|
||||||
children_maps.extend(self.get_shortcuts(context));
|
children_maps.extend(self.get_shortcuts(context));
|
||||||
|
@ -1320,6 +1322,8 @@ impl Component for Tabbed {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
UIEvent::Input(ref key) if shortcut!(key == shortcuts["general"]["next_tab"]) => {
|
UIEvent::Input(ref key) if shortcut!(key == shortcuts["general"]["next_tab"]) => {
|
||||||
|
self.children[self.cursor_pos]
|
||||||
|
.process_event(&mut UIEvent::VisibilityChange(false), context);
|
||||||
self.cursor_pos = (self.cursor_pos + 1) % self.children.len();
|
self.cursor_pos = (self.cursor_pos + 1) % self.children.len();
|
||||||
let mut children_maps = self.children[self.cursor_pos].get_shortcuts(context);
|
let mut children_maps = self.children[self.cursor_pos].get_shortcuts(context);
|
||||||
children_maps.extend(self.get_shortcuts(context));
|
children_maps.extend(self.get_shortcuts(context));
|
||||||
|
@ -1348,6 +1352,8 @@ impl Component for Tabbed {
|
||||||
}
|
}
|
||||||
UIEvent::Action(Tab(New(ref mut e))) if e.is_some() => {
|
UIEvent::Action(Tab(New(ref mut e))) if e.is_some() => {
|
||||||
self.add_component(e.take().unwrap());
|
self.add_component(e.take().unwrap());
|
||||||
|
self.children[self.cursor_pos]
|
||||||
|
.process_event(&mut UIEvent::VisibilityChange(false), context);
|
||||||
self.cursor_pos = self.children.len() - 1;
|
self.cursor_pos = self.children.len() - 1;
|
||||||
self.children[self.cursor_pos].set_dirty(true);
|
self.children[self.cursor_pos].set_dirty(true);
|
||||||
let mut children_maps = self.children[self.cursor_pos].get_shortcuts(context);
|
let mut children_maps = self.children[self.cursor_pos].get_shortcuts(context);
|
||||||
|
|
Loading…
Reference in New Issue