diff --git a/src/input.rs b/src/input.rs index 024ee0b8c..ea6e92a2c 100644 --- a/src/input.rs +++ b/src/input.rs @@ -461,7 +461,7 @@ fn on_mouse_left_click(&mut self, position: ViewportPosition) { FLOG!(reader, "Mouse left click", position); self.request_cursor_position( &mut Outputter::stdoutput().borrow_mut(), - Some(CursorPositionWait::MouseLeft(position)), + CursorPositionWait::MouseLeft(position), ); } } diff --git a/src/reader.rs b/src/reader.rs index 6e6c33dcb..6fcb97bd0 100644 --- a/src/reader.rs +++ b/src/reader.rs @@ -1436,17 +1436,12 @@ fn update_buff_pos(&mut self, elt: EditableLineTag, mut new_pos: Option) true } - pub fn request_cursor_position( - &mut self, - out: &mut Outputter, - wait: Option, - ) { - if let Some(cursor_position_wait) = wait { - let mut wait_guard = self.blocking_wait(); - assert!(wait_guard.is_none()); - *wait_guard = Some(BlockingWait::CursorPosition(cursor_position_wait)); - } + pub fn request_cursor_position(&mut self, out: &mut Outputter, wait: CursorPositionWait) { + let mut wait_guard = self.blocking_wait(); + assert!(wait_guard.is_none()); + *wait_guard = Some(BlockingWait::CursorPosition(wait)); out.write_command(QueryCursorPosition); + drop(wait_guard); self.save_screen_state(); } @@ -2200,8 +2195,6 @@ fn readline(&mut self, nchars: Option) -> Option { out.begin_buffering(); // Query for kitty keyboard protocol support. out.write_command(QueryKittyKeyboardProgressiveEnhancements); - // Query for cursor position reporting support. - self.request_cursor_position(&mut out, None); out.write_command(QueryXtversion); query_capabilities_via_dcs(out.by_ref(), self.parser.vars()); out.write_command(QueryPrimaryDeviceAttribute); @@ -3817,7 +3810,7 @@ fn handle_readline_command(&mut self, c: ReadlineCmd) { drop(wait_guard); self.request_cursor_position( &mut Outputter::stdoutput().borrow_mut(), - Some(CursorPositionWait::ScrollbackPush), + CursorPositionWait::ScrollbackPush, ); return; };