@@ -2532,21 +2532,7 @@ fn handle_user_message<T: UserEvent>(
25322532 let _ = webview. print ( ) ;
25332533 }
25342534 }
2535- WebviewMessage :: WebviewEvent ( event) => {
2536- let window_event_listeners = windows
2537- . borrow ( )
2538- . get ( & id)
2539- . map ( |w| w. window_event_listeners . clone ( ) ) ;
2540- if let Some ( window_event_listeners) = window_event_listeners {
2541- if let Some ( event) = WindowEventWrapper :: from ( & event) . 0 {
2542- let listeners = window_event_listeners. lock ( ) . unwrap ( ) ;
2543- let handlers = listeners. values ( ) ;
2544- for handler in handlers {
2545- handler ( & event) ;
2546- }
2547- }
2548- }
2549- }
2535+ WebviewMessage :: WebviewEvent ( _event) => { /* already handled */ }
25502536 } ,
25512537 Message :: CreateWebview ( window_id, handler) => match handler ( event_loop, web_context) {
25522538 Ok ( webview) => {
@@ -2840,6 +2826,24 @@ fn handle_event_loop<T: UserEvent>(
28402826 global_listener ( id. 0 , & event) ;
28412827 }
28422828 }
2829+ Event :: UserEvent ( Message :: Webview ( id, WebviewMessage :: WebviewEvent ( event) ) ) => {
2830+ if let Some ( event) = WindowEventWrapper :: from ( & event) . 0 {
2831+ let windows = windows. borrow ( ) ;
2832+ let window = windows. get ( & id) ;
2833+ if let Some ( window) = window {
2834+ callback ( RunEvent :: WindowEvent {
2835+ label : window. label . clone ( ) ,
2836+ event : event. clone ( ) ,
2837+ } ) ;
2838+
2839+ let listeners = window. window_event_listeners . lock ( ) . unwrap ( ) ;
2840+ let handlers = listeners. values ( ) ;
2841+ for handler in handlers {
2842+ handler ( & event) ;
2843+ }
2844+ }
2845+ }
2846+ }
28432847 Event :: WindowEvent {
28442848 event, window_id, ..
28452849 } => {
0 commit comments