mirror of
https://github.com/tauri-apps/tauri.git
synced 2026-04-01 10:01:07 +02:00
6
.changes/windows-focused-event.md
Normal file
6
.changes/windows-focused-event.md
Normal file
@@ -0,0 +1,6 @@
|
||||
---
|
||||
'tauri': 'patch'
|
||||
'tauri-runtime-wry': 'patch'
|
||||
---
|
||||
|
||||
On Windows, Fix missing `WindowEvent::Focused` in `App::run` callback.
|
||||
@@ -2532,21 +2532,7 @@ fn handle_user_message<T: UserEvent>(
|
||||
let _ = webview.print();
|
||||
}
|
||||
}
|
||||
WebviewMessage::WebviewEvent(event) => {
|
||||
let window_event_listeners = windows
|
||||
.borrow()
|
||||
.get(&id)
|
||||
.map(|w| w.window_event_listeners.clone());
|
||||
if let Some(window_event_listeners) = window_event_listeners {
|
||||
if let Some(event) = WindowEventWrapper::from(&event).0 {
|
||||
let listeners = window_event_listeners.lock().unwrap();
|
||||
let handlers = listeners.values();
|
||||
for handler in handlers {
|
||||
handler(&event);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
WebviewMessage::WebviewEvent(_event) => { /* already handled */ }
|
||||
},
|
||||
Message::CreateWebview(window_id, handler) => match handler(event_loop, web_context) {
|
||||
Ok(webview) => {
|
||||
@@ -2840,6 +2826,24 @@ fn handle_event_loop<T: UserEvent>(
|
||||
global_listener(id.0, &event);
|
||||
}
|
||||
}
|
||||
Event::UserEvent(Message::Webview(id, WebviewMessage::WebviewEvent(event))) => {
|
||||
if let Some(event) = WindowEventWrapper::from(&event).0 {
|
||||
let windows = windows.borrow();
|
||||
let window = windows.get(&id);
|
||||
if let Some(window) = window {
|
||||
callback(RunEvent::WindowEvent {
|
||||
label: window.label.clone(),
|
||||
event: event.clone(),
|
||||
});
|
||||
|
||||
let listeners = window.window_event_listeners.lock().unwrap();
|
||||
let handlers = listeners.values();
|
||||
for handler in handlers {
|
||||
handler(&event);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Event::WindowEvent {
|
||||
event, window_id, ..
|
||||
} => {
|
||||
|
||||
Reference in New Issue
Block a user