mirror of
https://github.com/tauri-apps/tauri.git
synced 2026-04-01 10:01:07 +02:00
committed by
GitHub
parent
fa06fa07e3
commit
d18b5367a9
5
.changes/window-label-unique.md
Normal file
5
.changes/window-label-unique.md
Normal file
@@ -0,0 +1,5 @@
|
||||
---
|
||||
"tauri": patch
|
||||
---
|
||||
|
||||
Enfore uniqueness of window label.
|
||||
@@ -17,6 +17,9 @@ pub enum Error {
|
||||
/// Failed to create window.
|
||||
#[error("failed to create window")]
|
||||
CreateWindow,
|
||||
/// Window label must be unique.
|
||||
#[error("a window with label `{0}` already exists")]
|
||||
WindowLabelAlreadyExists(String),
|
||||
/// Can't access webview dispatcher because the webview was closed or not found.
|
||||
#[error("webview not found: invalid label or it was closed")]
|
||||
WebviewNotFound,
|
||||
|
||||
@@ -658,6 +658,11 @@ impl<P: Params> WindowManager<P> {
|
||||
mut pending: PendingWindow<P>,
|
||||
pending_labels: &[P::Label],
|
||||
) -> crate::Result<PendingWindow<P>> {
|
||||
if self.windows_lock().contains_key(&pending.label) {
|
||||
return Err(crate::Error::WindowLabelAlreadyExists(
|
||||
pending.label.to_string(),
|
||||
));
|
||||
}
|
||||
let (is_local, url) = match &pending.webview_attributes.url {
|
||||
WindowUrl::App(path) => {
|
||||
let url = self.get_url();
|
||||
|
||||
Reference in New Issue
Block a user