123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- use dioxus::prelude::*;
- use dioxus_desktop::tao::event::WindowEvent;
- use dioxus_desktop::use_wry_event_handler;
- use dioxus_desktop::wry::application::event::Event as WryEvent;
- use dioxus_desktop::{Config, WindowCloseBehaviour};
- fn main() {
- let cfg = Config::new().with_close_behaviour(WindowCloseBehaviour::CloseWindow);
- dioxus_desktop::launch_cfg(app, cfg);
- }
- fn app(cx: Scope) -> Element {
- let focused = use_state(cx, || false);
- use_wry_event_handler(cx, {
- to_owned![focused];
- move |event, _| {
- if let WryEvent::WindowEvent {
- event: WindowEvent::Focused(new_focused),
- ..
- } = event
- {
- focused.set(*new_focused);
- }
- }
- });
- cx.render(rsx! {
- div{
- width: "100%",
- height: "100%",
- display: "flex",
- flex_direction: "column",
- align_items: "center",
- {
- if *focused.get() {
- "This window is focused!"
- } else {
- "This window is not focused!"
- }
- }
- }
- })
- }
|