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, editor::EditorLocationNew,
hover::HoverStatus, hover::HoverStatus,
keypress::KeyPressData, keypress::{DefaultKeyPressHandler, KeyPressData},
movement::{self, CursorMode, Selection}, movement::{self, CursorMode, Selection},
palette::PaletteStatus, palette::PaletteStatus,
panel::{PanelPosition, PanelResizePosition}, panel::{PanelPosition, PanelResizePosition},
@ -1007,11 +1007,26 @@ fn event(
} }
self.activity.event(ctx, event, data, env); self.activity.event(ctx, event, data, env);
if let Event::MouseUp(_) = event { match event {
Event::MouseUp(_) => {
if data.drag.is_some() { if data.drag.is_some() {
*Arc::make_mut(&mut data.drag) = None; *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();
}
_ => (),
}
} }
fn lifecycle( fn lifecycle(