Merge pull request #346 from bugadani/focusfix

Pass unhandled key events through the default handler
This commit is contained in:
Dongdong Zhou 2022-04-03 16:56:44 +00:00 committed by GitHub
commit 202955c823
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 19 additions and 4 deletions

View File

@ -23,7 +23,7 @@
},
editor::EditorLocationNew,
hover::HoverStatus,
keypress::KeyPressData,
keypress::{DefaultKeyPressHandler, KeyPressData},
movement::{self, CursorMode, Selection},
palette::PaletteStatus,
panel::{PanelPosition, PanelResizePosition},
@ -1007,10 +1007,25 @@ fn event(
}
self.activity.event(ctx, event, data, env);
if let Event::MouseUp(_) = event {
if data.drag.is_some() {
*Arc::make_mut(&mut data.drag) = None;
match event {
Event::MouseUp(_) => {
if data.drag.is_some() {
*Arc::make_mut(&mut data.drag) = None;
}
}
Event::KeyDown(key_event) if !ctx.is_handled() => {
let mut keypress = data.keypress.clone();
let mut_keypress = Arc::make_mut(&mut keypress);
mut_keypress.key_down(
ctx,
key_event,
&mut DefaultKeyPressHandler {},
env,
);
data.keypress = keypress;
ctx.set_handled();
}
_ => (),
}
}