-
Notifications
You must be signed in to change notification settings - Fork 55
Open
Labels
Description
Currently, there is no way to close the window programmatically opened by Turtle::new()
or Drawing::new()
. We should add a fn destroy(self)
method to Drawing
which allows for this.
Implementation: The destroy
method can send a request to the renderer process which uses EventLoopNotifier
to tell the event loop to exit. (More mentoring instructions can be provided if requested.)
To-Do
- Bikeshed the name.
destroy()
was the best I could come up withclose()
only works whenDrawing
represents a window, but that won't always be the casequit()
might work, but it might confuse some people who expect that to end the entire processbye()
is used by the Python turtle module and some LOGO implementation, but callingdrawing.bye()
probably doesn't read very well...- Other suggestions are welcome!
- Resolve TODO comment in
examples/runtest.rs
(needs to be tested on MacOS)- The window currently stays open even after
process::exit
because the subprocess gets orphaned when using the multiprocessed backend - To test on any platform, you can force the multiprocessed backend by changing
backend.rs
to contain the following:
- The window currently stays open even after
cfg_if::cfg_if! {
if #[cfg(any(feature = "test", test))] {
mod test;
pub use test::*;
// } else if #[cfg(target_os = "macos")] {
} else {
mod multiprocessed;
pub use multiprocessed::*;
//
// } else {
// mod multithreaded;
// pub use multithreaded::*;
}
}