Files
dioxus/examples/multiwindow.rs
T
sertschgiandJonathan Kelley 25a64d97c0 Fixed the multiple window closing issue, where the two multiwindow examples weren't working. (#3499)
* fixed window when multiple windows not closing

* fixed window when multiple windows not closing

* fixed accidental includes

* polished

* fix last window closing hiding app and rc hardcount

* find the suspect strong count holders and fix them

* Use the proper type alias

* fmt

---------

Co-authored-by: Jonathan Kelley <jkelleyrtp@gmail.com>
2025-01-13 12:10:22 -08:00

33 lines
959 B
Rust

//! Multiwindow example
//!
//! This example shows how to implement a simple multiwindow application using dioxus.
//! This works by spawning a new window when the user clicks a button. We have to build a new virtualdom which has its
//! own context, root elements, etc.
use dioxus::prelude::*;
use dioxus::{desktop::Config, desktop::WindowCloseBehaviour};
fn main() {
dioxus::LaunchBuilder::desktop()
// We can choose the close behavior of the last window to hide. See WindowCloseBehaviour for more options.
.with_cfg(Config::new().with_close_behaviour(WindowCloseBehaviour::LastWindowHides))
.launch(app);
}
fn app() -> Element {
let onclick = move |_| {
let dom = VirtualDom::new(popup);
dioxus::desktop::window().new_window(dom, Default::default());
};
rsx! {
button { onclick, "New Window" }
}
}
fn popup() -> Element {
rsx! {
div { "This is a popup window!" }
}
}