feature (ui): implemented reverse plane cycling using <Shift>+<Tab> as requested in #5
This commit is contained in:
parent
7347d0c4f1
commit
8d6e7c976e
|
@ -126,6 +126,12 @@ impl Event {
|
||||||
}) => {
|
}) => {
|
||||||
app.ui.cycle_main_input_position();
|
app.ui.cycle_main_input_position();
|
||||||
}
|
}
|
||||||
|
crossterm::event::Event::Key(KeyEvent {
|
||||||
|
code: KeyCode::BackTab,
|
||||||
|
..
|
||||||
|
}) => {
|
||||||
|
app.ui.cycle_main_input_position_rev();
|
||||||
|
}
|
||||||
input => match app.ui.input_position() {
|
input => match app.ui.input_position() {
|
||||||
ui::MainInputPosition::MessageCompose => {
|
ui::MainInputPosition::MessageCompose => {
|
||||||
match input {
|
match input {
|
||||||
|
@ -256,6 +262,12 @@ impl Event {
|
||||||
}) => {
|
}) => {
|
||||||
ui.cycle_input_position();
|
ui.cycle_input_position();
|
||||||
}
|
}
|
||||||
|
crossterm::event::Event::Key(KeyEvent {
|
||||||
|
code: KeyCode::BackTab,
|
||||||
|
..
|
||||||
|
}) => {
|
||||||
|
ui.cycle_input_position_rev();
|
||||||
|
}
|
||||||
crossterm::event::Event::Key(KeyEvent {
|
crossterm::event::Event::Key(KeyEvent {
|
||||||
code: KeyCode::Enter,
|
code: KeyCode::Enter,
|
||||||
..
|
..
|
||||||
|
|
|
@ -155,6 +155,35 @@ impl SetupUI<'_> {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn cycle_input_position_rev(&mut self) {
|
||||||
|
self.input_position = match self.input_position {
|
||||||
|
SetupInputPosition::Homeserver => {
|
||||||
|
textarea_inactivate(&mut self.homeserver);
|
||||||
|
textarea_inactivate(&mut self.username);
|
||||||
|
textarea_inactivate(&mut self.password);
|
||||||
|
SetupInputPosition::Ok
|
||||||
|
}
|
||||||
|
SetupInputPosition::Username => {
|
||||||
|
textarea_activate(&mut self.homeserver);
|
||||||
|
textarea_inactivate(&mut self.username);
|
||||||
|
textarea_inactivate(&mut self.password);
|
||||||
|
SetupInputPosition::Homeserver
|
||||||
|
}
|
||||||
|
SetupInputPosition::Password => {
|
||||||
|
textarea_inactivate(&mut self.homeserver);
|
||||||
|
textarea_activate(&mut self.username);
|
||||||
|
textarea_inactivate(&mut self.password);
|
||||||
|
SetupInputPosition::Username
|
||||||
|
}
|
||||||
|
SetupInputPosition::Ok => {
|
||||||
|
textarea_inactivate(&mut self.homeserver);
|
||||||
|
textarea_inactivate(&mut self.username);
|
||||||
|
textarea_activate(&mut self.password);
|
||||||
|
SetupInputPosition::Password
|
||||||
|
}
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
pub fn input_position(&self) -> &SetupInputPosition {
|
pub fn input_position(&self) -> &SetupInputPosition {
|
||||||
&self.input_position
|
&self.input_position
|
||||||
}
|
}
|
||||||
|
@ -251,6 +280,16 @@ impl UI<'_> {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
pub fn cycle_main_input_position_rev(&mut self) {
|
||||||
|
self.input_position = match self.input_position {
|
||||||
|
MainInputPosition::Status => MainInputPosition::RoomInfo,
|
||||||
|
MainInputPosition::Rooms => MainInputPosition::Status,
|
||||||
|
MainInputPosition::Messages => MainInputPosition::Rooms,
|
||||||
|
MainInputPosition::MessageCompose => MainInputPosition::Messages,
|
||||||
|
MainInputPosition::RoomInfo => MainInputPosition::MessageCompose,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
pub fn input_position(&self) -> &MainInputPosition {
|
pub fn input_position(&self) -> &MainInputPosition {
|
||||||
&self.input_position
|
&self.input_position
|
||||||
}
|
}
|
||||||
|
|
Reference in New Issue