Revert window::close producing a window::Id
Instead, subscribing to `window::close_events` is preferable; since most use cases will want to react to the user closing a window as well.
This commit is contained in:
parent
22fc5ce0ea
commit
8b45d620d0
4 changed files with 7 additions and 12 deletions
|
|
@ -37,7 +37,7 @@ impl Events {
|
||||||
}
|
}
|
||||||
Message::EventOccurred(event) => {
|
Message::EventOccurred(event) => {
|
||||||
if let Event::Window(window::Event::CloseRequested) = event {
|
if let Event::Window(window::Event::CloseRequested) = event {
|
||||||
window::get_latest().and_then(window::close).discard()
|
window::get_latest().and_then(window::close)
|
||||||
} else {
|
} else {
|
||||||
Task::none()
|
Task::none()
|
||||||
}
|
}
|
||||||
|
|
@ -47,9 +47,7 @@ impl Events {
|
||||||
|
|
||||||
Task::none()
|
Task::none()
|
||||||
}
|
}
|
||||||
Message::Exit => {
|
Message::Exit => window::get_latest().and_then(window::close),
|
||||||
window::get_latest().and_then(window::close).discard()
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,9 +20,7 @@ enum Message {
|
||||||
impl Exit {
|
impl Exit {
|
||||||
fn update(&mut self, message: Message) -> Task<Message> {
|
fn update(&mut self, message: Message) -> Task<Message> {
|
||||||
match message {
|
match message {
|
||||||
Message::Confirm => {
|
Message::Confirm => window::get_latest().and_then(window::close),
|
||||||
window::get_latest().and_then(window::close).discard()
|
|
||||||
}
|
|
||||||
Message::Exit => {
|
Message::Exit => {
|
||||||
self.show_confirm = true;
|
self.show_confirm = true;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ pub enum Action {
|
||||||
Open(Id, Settings, oneshot::Sender<Id>),
|
Open(Id, Settings, oneshot::Sender<Id>),
|
||||||
|
|
||||||
/// Close the window and exits the application.
|
/// Close the window and exits the application.
|
||||||
Close(Id, oneshot::Sender<Id>),
|
Close(Id),
|
||||||
|
|
||||||
/// Gets the [`Id`] of the oldest window.
|
/// Gets the [`Id`] of the oldest window.
|
||||||
GetOldest(oneshot::Sender<Option<Id>>),
|
GetOldest(oneshot::Sender<Option<Id>>),
|
||||||
|
|
@ -230,8 +230,8 @@ pub fn open(settings: Settings) -> (Id, Task<Id>) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Closes the window with `id`.
|
/// Closes the window with `id`.
|
||||||
pub fn close(id: Id) -> Task<Id> {
|
pub fn close<T>(id: Id) -> Task<T> {
|
||||||
task::oneshot(|channel| crate::Action::Window(Action::Close(id, channel)))
|
task::effect(crate::Action::Window(Action::Close(id)))
|
||||||
}
|
}
|
||||||
|
|
||||||
/// Gets the window [`Id`] of the oldest window.
|
/// Gets the window [`Id`] of the oldest window.
|
||||||
|
|
|
||||||
|
|
@ -1211,10 +1211,9 @@ fn run_action<P, C>(
|
||||||
|
|
||||||
*is_window_opening = true;
|
*is_window_opening = true;
|
||||||
}
|
}
|
||||||
window::Action::Close(id, channel) => {
|
window::Action::Close(id) => {
|
||||||
let _ = window_manager.remove(id);
|
let _ = window_manager.remove(id);
|
||||||
let _ = ui_caches.remove(&id);
|
let _ = ui_caches.remove(&id);
|
||||||
let _ = channel.send(id);
|
|
||||||
|
|
||||||
events.push((
|
events.push((
|
||||||
id,
|
id,
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue