commit 9380ca9e23317359377fd2f9723976d4656a4fba
parent b4296b49b56c74306f2dc79caa1c93848fcd4195
Author: n0tr1v <n0tr1v@protonmail.com>
Date: Wed, 13 Dec 2023 12:47:13 -0500
cleanup and fix gg pull request
Diffstat:
1 file changed, 17 insertions(+), 18 deletions(-)
diff --git a/src/main.rs b/src/main.rs
@@ -496,7 +496,8 @@ impl LeChatPHPClient {
println!("Error: {}\nCheck Your Tor Connection", err);
process::exit(0);
}
- }; let doc = Document::from(resp_txt.as_str());
+ };
+ let doc = Document::from(resp_txt.as_str());
if let Some(meta) = doc.find(Name("meta")).next() {
let meta_content = meta.attr("content").context("meta content not found").unwrap().to_owned();
let index_url = META_REFRESH_RGX.captures(&meta_content).unwrap()[1].to_owned();
@@ -595,6 +596,9 @@ impl LeChatPHPClient {
}
fn handle_key_event(&mut self, app: &mut App, messages: &Arc<Mutex<Vec<Message>>>, users: &Arc<Mutex<Users>>, key_event: KeyEvent) -> Result<(), ExitSignal> {
+ if app.input_mode != InputMode::Normal {
+ self.last_key_event = None;
+ }
match app.input_mode {
InputMode::LongMessage => self.handle_long_message_mode_key_event(app, key_event, messages),
InputMode::Normal => self.handle_normal_mode_key_event(app, key_event, messages),
@@ -643,28 +647,13 @@ impl LeChatPHPClient {
KeyEvent { code: KeyCode::PageDown, modifiers: KeyModifiers::NONE, .. } => self.handle_normal_mode_key_event_page_down(app),
KeyEvent { code: KeyCode::Esc, modifiers: KeyModifiers::NONE, .. } => self.handle_normal_mode_key_event_esc(app),
KeyEvent { code: KeyCode::Char('u'), modifiers: KeyModifiers::SHIFT, .. } => self.handle_normal_mode_key_event_shift_u(app),
- KeyEvent { code: KeyCode::Char('g'), modifiers: KeyModifiers::NONE, .. } => {
- // Handle "gg" key combination
- if self.last_key_event.map_or(false, |last_event| last_event == KeyCode::Char('g')) {
- self.handle_gg_key_combination(app);
- } else {
- // Store the current key event for future comparison
- self.last_key_event = Some(KeyCode::Char('g'));
- }
- }
-
+ KeyEvent { code: KeyCode::Char('g'), modifiers: KeyModifiers::NONE, .. } => self.handle_normal_mode_key_event_g(app),
_ => {}
}
+ self.last_key_event = Some(key_event.code);
Ok(())
}
- fn handle_gg_key_combination(&mut self, app: &mut App) {
- app.items.select_top();
- //println!("Handling 'gg' key combination");
- // Reset the stored key event
- self.last_key_event = None;
- }
-
fn handle_editing_mode_key_event(&mut self, app: &mut App, key_event: KeyEvent, users: &Arc<Mutex<Users>>) -> Result<(), ExitSignal> {
app.input_mode = InputMode::Editing;
match key_event {
@@ -829,6 +818,15 @@ impl LeChatPHPClient {
self.display_guest_view = !self.display_guest_view;
}
+
+ fn handle_normal_mode_key_event_g(&mut self, app: &mut App) {
+ // Handle "gg" key combination
+ if self.last_key_event == Some(KeyCode::Char('g')) {
+ app.items.select_top();
+ self.last_key_event = None;
+ }
+ }
+
fn handle_normal_mode_key_event_toggle_hidden(&mut self) {
self.display_hidden_msgs = !self.display_hidden_msgs;
}
@@ -2646,6 +2644,7 @@ fn random_string(n: usize) -> String {
std::str::from_utf8(&s).unwrap().to_owned()
}
+#[derive(PartialEq)]
enum InputMode {
LongMessage,
Normal,