mirror of
https://github.com/tauri-apps/tauri.git
synced 2026-04-01 10:01:07 +02:00
committed by
GitHub
parent
04a682beb0
commit
b5f40ae58d
5
.changes/fix-global-event.md
Normal file
5
.changes/fix-global-event.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"tauri": patch:bug
|
||||
---
|
||||
|
||||
Fixes global events not reaching to window listeners.
|
||||
@@ -141,10 +141,7 @@ pub fn event_initialization_script(function: &str, listeners: &str) -> String {
|
||||
|
||||
for (let i = listeners.length - 1; i >= 0; i--) {{
|
||||
const listener = listeners[i]
|
||||
if (
|
||||
(listener.windowLabel && listener.windowLabel === eventData.windowLabel) ||
|
||||
(!listener.windowLabel && (listener.windowLabel === null || eventData.windowLabel === null))
|
||||
) {{
|
||||
if (listener.windowLabel === null || eventData.windowLabel === null || listener.windowLabel === eventData.windowLabel) {{
|
||||
eventData.id = listener.id
|
||||
listener.handler(eventData)
|
||||
}}
|
||||
|
||||
@@ -2405,14 +2405,22 @@ impl<R: Runtime> Window<R> {
|
||||
|
||||
/// Whether this window registered a listener to an event from the given window and event name.
|
||||
pub(crate) fn has_js_listener(&self, window_label: Option<String>, event: &str) -> bool {
|
||||
self
|
||||
.js_event_listeners
|
||||
.lock()
|
||||
.unwrap()
|
||||
.contains_key(&JsEventListenerKey {
|
||||
window_label,
|
||||
event: event.into(),
|
||||
let listeners = self.js_event_listeners.lock().unwrap();
|
||||
|
||||
if let Some(label) = window_label {
|
||||
let event = event.to_string();
|
||||
// window-specific event is also triggered on global events, so we check that
|
||||
listeners.contains_key(&JsEventListenerKey {
|
||||
window_label: Some(label),
|
||||
event: event.clone(),
|
||||
}) || listeners.contains_key(&JsEventListenerKey {
|
||||
window_label: None,
|
||||
event,
|
||||
})
|
||||
} else {
|
||||
// for global events, any listener is triggered
|
||||
listeners.keys().any(|k| k.event == event)
|
||||
}
|
||||
}
|
||||
|
||||
/// Opens the developer tools window (Web Inspector).
|
||||
|
||||
14
examples/api/src-tauri/Cargo.lock
generated
14
examples/api/src-tauri/Cargo.lock
generated
@@ -3391,7 +3391,7 @@ checksum = "14c39fd04924ca3a864207c66fc2cd7d22d7c016007f9ce846cbb9326331930a"
|
||||
|
||||
[[package]]
|
||||
name = "tauri"
|
||||
version = "2.0.0-alpha.16"
|
||||
version = "2.0.0-alpha.17"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"bytes",
|
||||
@@ -3442,7 +3442,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tauri-build"
|
||||
version = "2.0.0-alpha.10"
|
||||
version = "2.0.0-alpha.11"
|
||||
dependencies = [
|
||||
"anyhow",
|
||||
"cargo_toml",
|
||||
@@ -3463,7 +3463,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tauri-codegen"
|
||||
version = "2.0.0-alpha.9"
|
||||
version = "2.0.0-alpha.10"
|
||||
dependencies = [
|
||||
"base64",
|
||||
"brotli",
|
||||
@@ -3487,7 +3487,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tauri-macros"
|
||||
version = "2.0.0-alpha.9"
|
||||
version = "2.0.0-alpha.10"
|
||||
dependencies = [
|
||||
"heck",
|
||||
"proc-macro2",
|
||||
@@ -3523,7 +3523,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tauri-runtime"
|
||||
version = "1.0.0-alpha.3"
|
||||
version = "1.0.0-alpha.4"
|
||||
dependencies = [
|
||||
"gtk",
|
||||
"http",
|
||||
@@ -3539,7 +3539,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tauri-runtime-wry"
|
||||
version = "1.0.0-alpha.4"
|
||||
version = "1.0.0-alpha.5"
|
||||
dependencies = [
|
||||
"cocoa 0.24.1",
|
||||
"gtk",
|
||||
@@ -3557,7 +3557,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "tauri-utils"
|
||||
version = "2.0.0-alpha.9"
|
||||
version = "2.0.0-alpha.10"
|
||||
dependencies = [
|
||||
"aes-gcm",
|
||||
"brotli",
|
||||
|
||||
Reference in New Issue
Block a user