From 9118e397eb4a3d838e1230f0ac51b1836a58aa6e Mon Sep 17 00:00:00 2001 From: Kasper Date: Sat, 10 Dec 2022 00:10:48 +0100 Subject: [PATCH 1/2] Beepfix attempt --- examples/custom_protocol_page1.html | 8 +++++++- src/webview/wkwebview/mod.rs | 21 ++++++++++++++++++++- 2 files changed, 27 insertions(+), 2 deletions(-) diff --git a/examples/custom_protocol_page1.html b/examples/custom_protocol_page1.html index bc7e9a764..4d084cd78 100644 --- a/examples/custom_protocol_page1.html +++ b/examples/custom_protocol_page1.html @@ -15,8 +15,14 @@

Welcome to WRY!

Page 1

+

Link + - \ No newline at end of file + diff --git a/src/webview/wkwebview/mod.rs b/src/webview/wkwebview/mod.rs index 0c7548a5e..ae2f19444 100644 --- a/src/webview/wkwebview/mod.rs +++ b/src/webview/wkwebview/mod.rs @@ -687,7 +687,26 @@ r#"Object.defineProperty(window, 'ipc', { // Inject the web view into the window as main content #[cfg(target_os = "macos")] { - let parent_view_cls = class!(NSView); + let parent_view_cls = match ClassDecl::new("WryWebViewParent", class!(NSView)) { + Some(mut decl) => { + decl.add_method( + sel!(keyDown:), + key_down as extern "C" fn(&mut Object, Sel, id), + ); + + extern "C" fn key_down(_this: &mut Object, _sel: Sel, event: id) { + unsafe { + let app = cocoa::appkit::NSApp(); + let menu: id = msg_send![app, mainMenu]; + let () = msg_send![menu, performKeyEquivalent: event]; + } + } + + decl.register() + } + None => class!(NSView), + }; + let parent_view: id = msg_send![parent_view_cls, alloc]; let _: () = msg_send![parent_view, init]; parent_view.setAutoresizingMask_(NSViewHeightSizable | NSViewWidthSizable); From c1e0363781e455a2cc9336eda484ed2d02e8807c Mon Sep 17 00:00:00 2001 From: Kasper Date: Sat, 10 Dec 2022 00:24:39 +0100 Subject: [PATCH 2/2] Add changefile --- .changes/beepfix.md | 5 +++++ 1 file changed, 5 insertions(+) create mode 100644 .changes/beepfix.md diff --git a/.changes/beepfix.md b/.changes/beepfix.md new file mode 100644 index 000000000..b94094185 --- /dev/null +++ b/.changes/beepfix.md @@ -0,0 +1,5 @@ +--- +"wry": patch +--- + +Fix the beep sound on macOS