diff options
| author | 2022-10-19 23:33:20 -0300 | |
|---|---|---|
| committer | 2023-01-09 11:27:04 -0800 | |
| commit | f93fa0254329ebddca21ea1a79bd8ee6d8b4bdaf (patch) | |
| tree | 3b3ae59caf9f67c0c5d58fb1aeb997bc91aecf99 /glutin/src | |
| parent | 1bc0c480f9747826b244c30e92d8c4a29b576e4a (diff) | |
| download | iced-f93fa0254329ebddca21ea1a79bd8ee6d8b4bdaf.tar.gz iced-f93fa0254329ebddca21ea1a79bd8ee6d8b4bdaf.tar.bz2 iced-f93fa0254329ebddca21ea1a79bd8ee6d8b4bdaf.zip | |
introduce `window::spawn` and `window::close`
Diffstat (limited to '')
| -rw-r--r-- | glutin/src/multi_window.rs | 79 | 
1 files changed, 45 insertions, 34 deletions
| diff --git a/glutin/src/multi_window.rs b/glutin/src/multi_window.rs index ce34aa31..2a66a816 100644 --- a/glutin/src/multi_window.rs +++ b/glutin/src/multi_window.rs @@ -682,41 +682,52 @@ pub fn run_command<A, E>(                      clipboard.write(contents);                  }              }, -            command::Action::Window(id, action) => { -                let window = windows.get(&id).expect("No window found"); - -                match action { -                    window::Action::Resize { width, height } => { -                        window.set_inner_size(glutin::dpi::LogicalSize { -                            width, -                            height, -                        }); -                    } -                    window::Action::Move { x, y } => { -                        window.set_outer_position( -                            glutin::dpi::LogicalPosition { x, y }, -                        ); -                    } -                    window::Action::SetMode(mode) => { -                        window.set_visible(conversion::visible(mode)); -                        window.set_fullscreen(conversion::fullscreen( -                            window.primary_monitor(), -                            mode, -                        )); -                    } -                    window::Action::FetchMode(tag) => { -                        let mode = if window.is_visible().unwrap_or(true) { -                            conversion::mode(window.fullscreen()) -                        } else { -                            window::Mode::Hidden -                        }; - -                        proxy -                            .send_event(Event::Application(tag(mode))) -                            .expect("Send message to event loop"); -                    } +            command::Action::Window(id, action) => match action { +                window::Action::Spawn { settings } => { +                    proxy +                        .send_event(Event::NewWindow(id, settings.into())) +                        .expect("Send message to event loop");                  } -            } +                window::Action::Close => { +                    proxy +                        .send_event(Event::CloseWindow(id)) +                        .expect("Send message to event loop"); +                } +                window::Action::Resize { width, height } => { +                    let window = windows.get(&id).expect("No window found"); +                    window.set_inner_size(glutin::dpi::LogicalSize { +                        width, +                        height, +                    }); +                } +                window::Action::Move { x, y } => { +                    let window = windows.get(&id).expect("No window found"); +                    window.set_outer_position(glutin::dpi::LogicalPosition { +                        x, +                        y, +                    }); +                } +                window::Action::SetMode(mode) => { +                    let window = windows.get(&id).expect("No window found"); +                    window.set_visible(conversion::visible(mode)); +                    window.set_fullscreen(conversion::fullscreen( +                        window.primary_monitor(), +                        mode, +                    )); +                } +                window::Action::FetchMode(tag) => { +                    let window = windows.get(&id).expect("No window found"); +                    let mode = if window.is_visible().unwrap_or(true) { +                        conversion::mode(window.fullscreen()) +                    } else { +                        window::Mode::Hidden +                    }; + +                    proxy +                        .send_event(Event::Application(tag(mode))) +                        .expect("Send message to event loop"); +                } +            },              command::Action::System(action) => match action {                  system::Action::QueryInformation(_tag) => {                      #[cfg(feature = "iced_winit/system")] | 
