diff --git a/crates/egui-term/src/display/mod.rs b/crates/egui-term/src/display/mod.rs index 38c1a91..799a115 100644 --- a/crates/egui-term/src/display/mod.rs +++ b/crates/egui-term/src/display/mod.rs @@ -182,7 +182,7 @@ impl TerminalView<'_> { fn paste_btn(&mut self, ui: &mut egui::Ui, btn_width: f32) { #[cfg(not(target_os = "macos"))] - let paste_shortcut = KeyboardShortcut::new(Modifiers::CTRL, Key::V); + let paste_shortcut = KeyboardShortcut::new(Modifiers::CTRL | Modifiers::SHIFT, Key::V); #[cfg(target_os = "macos")] let paste_shortcut = KeyboardShortcut::new(Modifiers::MAC_CMD, Key::V); let paste_shortcut = ui.ctx().format_shortcut(&paste_shortcut); diff --git a/crates/egui-term/src/ssh/mod.rs b/crates/egui-term/src/ssh/mod.rs index 2297f63..0a4981e 100644 --- a/crates/egui-term/src/ssh/mod.rs +++ b/crates/egui-term/src/ssh/mod.rs @@ -97,7 +97,7 @@ impl EventedReadWrite for Pty { poller.add_with_mode( &self.signals, - Event::writable(PTY_CHILD_EVENT_TOKEN), + Event::readable(PTY_CHILD_EVENT_TOKEN), PollMode::Level, )?; } @@ -132,7 +132,7 @@ impl EventedReadWrite for Pty { poller.modify_with_mode( &self.signals, - Event::writable(PTY_CHILD_EVENT_TOKEN), + Event::readable(PTY_CHILD_EVENT_TOKEN), PollMode::Level, )?; } diff --git a/crates/egui-term/src/view.rs b/crates/egui-term/src/view.rs index cb6f578..41d0558 100644 --- a/crates/egui-term/src/view.rs +++ b/crates/egui-term/src/view.rs @@ -240,11 +240,14 @@ impl<'a> TerminalView<'a> { modifiers, pos, } => { - if out_of_terminal(pos, layout) { - continue; - } + let new_pos = if out_of_terminal(pos, layout) { + pos.clamp(layout.rect.min, layout.rect.max) + } else { + pos + }; + if let Some(action) = - self.button_click(state, layout, button, pos, &modifiers, pressed) + self.button_click(state, layout, button, new_pos, &modifiers, pressed) { input_actions.push(action); }