Skip to content

Commit 06aa87b

Browse files
authored
fix(core): WindowEvent type used on Window::on_window_event (#3796)
1 parent 169b503 commit 06aa87b

File tree

3 files changed

+16
-7
lines changed

3 files changed

+16
-7
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
---
2+
"tauri": patch
3+
---
4+
5+
Fixes the `WindowEvent` type used on `Window::on_window_event`.

core/tauri/src/manager.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,14 +40,15 @@ use crate::{
4040
ResponseBuilder as HttpResponseBuilder,
4141
},
4242
webview::{WebviewIpcHandler, WindowBuilder},
43-
window::{dpi::PhysicalSize, DetachedWindow, FileDropEvent, PendingWindow, WindowEvent},
43+
window::{dpi::PhysicalSize, DetachedWindow, FileDropEvent, PendingWindow},
4444
},
4545
utils::{
4646
assets::Assets,
4747
config::{AppUrl, Config, WindowUrl},
4848
PackageInfo,
4949
},
5050
Context, EventLoopMessage, Icon, Invoke, Manager, Pattern, Runtime, Scopes, StateManager, Window,
51+
WindowEvent,
5152
};
5253

5354
#[cfg(any(target_os = "linux", target_os = "windows"))]
@@ -1147,7 +1148,7 @@ impl<R: Runtime> WindowManager<R> {
11471148
for handler in window_event_listeners.iter() {
11481149
handler(GlobalWindowEvent {
11491150
window: window_.clone(),
1150-
event: event.clone().into(),
1151+
event: event.clone(),
11511152
});
11521153
}
11531154
});
@@ -1274,9 +1275,9 @@ fn on_window_event<R: Runtime>(
12741275
match event {
12751276
WindowEvent::Resized(size) => window.emit(WINDOW_RESIZED_EVENT, size)?,
12761277
WindowEvent::Moved(position) => window.emit(WINDOW_MOVED_EVENT, position)?,
1277-
WindowEvent::CloseRequested { signal_tx } => {
1278+
WindowEvent::CloseRequested { api } => {
12781279
if window.has_js_listener(Some(window.label().into()), WINDOW_CLOSE_REQUESTED_EVENT) {
1279-
signal_tx.send(true).unwrap();
1280+
api.prevent_close();
12801281
}
12811282
window.emit(WINDOW_CLOSE_REQUESTED_EVENT, ())?;
12821283
}

core/tauri/src/window.rs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -21,15 +21,15 @@ use crate::{
2121
webview::{WebviewAttributes, WindowBuilder as _},
2222
window::{
2323
dpi::{PhysicalPosition, PhysicalSize, Position, Size},
24-
DetachedWindow, JsEventListenerKey, PendingWindow, WindowEvent,
24+
DetachedWindow, JsEventListenerKey, PendingWindow,
2525
},
2626
Dispatch, RuntimeHandle, UserAttentionType,
2727
},
2828
sealed::ManagerBase,
2929
sealed::RuntimeOrDispatch,
3030
utils::config::WindowUrl,
3131
EventLoopMessage, Icon, Invoke, InvokeError, InvokeMessage, InvokeResolver, Manager,
32-
PageLoadPayload, Runtime,
32+
PageLoadPayload, Runtime, WindowEvent,
3333
};
3434

3535
use serde::Serialize;
@@ -724,7 +724,10 @@ impl<R: Runtime> Window<R> {
724724

725725
/// Registers a window event listener.
726726
pub fn on_window_event<F: Fn(&WindowEvent) + Send + 'static>(&self, f: F) {
727-
self.window.dispatcher.on_window_event(f);
727+
self
728+
.window
729+
.dispatcher
730+
.on_window_event(move |event| f(&event.clone().into()));
728731
}
729732

730733
/// Registers a menu event listener.

0 commit comments

Comments
 (0)