fix(core): global events regression from #7996 closes #8146 (#8147)

This commit is contained in:
Lucas Fernandes Nogueira
2023-11-07 09:59:09 -03:00
committed by GitHub
parent 04a682beb0
commit b5f40ae58d
4 changed files with 28 additions and 18 deletions

View File

@@ -0,0 +1,5 @@
---
"tauri": patch:bug
---
Fixes global events not reaching to window listeners.

View File

@@ -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)
}}

View File

@@ -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).

View File

@@ -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",